2013-04-22 33 views
1

爲了儘量減少數量的加入,我在我的應用程序來執行,我決定在我的數據庫在同一領域中的幾個表複製例如: 我有一個用戶,產品和一個願望清單表。如何更新PostgreSQL的幾個表相同的屬性和Rails

我的產品頁面顯示誰創造的產品,爲心願頁這也說明誰創建它們的用戶的用戶。

所以我在產品和心願表添加需要顯示所需信息的所有用戶領域。

我如何能夠儘快的用戶改變他的信息更新用戶相關領域對我的產品和心願表?

這裏是我的模型的一部分:

用戶表

  • 全名
  • 用戶名
  • 頭像URL

產品表

  • 產品名稱
  • 產品價格
  • 用戶ID
  • 用戶全名
  • 用戶名
  • 用戶頭像URL

收藏表

  • 收藏名稱
  • 用戶ID
  • 用戶全名
  • 用戶名
  • 用戶頭像URL

提前謝謝您的回答!

+0

你會發布你的schema.rb文件以及3個模型嗎? – 2013-04-22 15:27:54

回答

2

首先,通過非規範化的,你是這樣的數據,你的工作反對什麼關係數據庫的意思做。它們在連接上茁壯成長,並且每個數據都顯示爲儘可能少的次數。所以你真的想確保這是你想要的模式。

話雖這麼說,你可以使用基本update_attibute語法任何表中的更新任何領域。所以,如果用戶編輯他或她的用戶名,你應該這樣做:

User.update_attribute(:username, username) 
Product.update_attribute(:username, username) 
Wishlist.update_attribute(:username, username) 
+0

好吧,但這種方法會比使用聯接更快嗎?或者對於表演是否一樣?謝謝, – 2013-04-23 07:54:08

相關問題