我通過Heroku在Postgres上運行Rails應用程序。在數據庫中存儲項目的「喜歡」?
我想實現與Facebook類似我的網站上的各種物品,如用戶評論「喜歡」。將數據存儲在我的數據庫中最高效和快速的最明智的方法是什麼?
最明顯的一個就是讓用戶和項目之間的類似連接表,像這樣:
user_id int
item_id int
item_type string
created_at datettime
然而,在顯示的時候,這意味着每一次我拉一個項目的時候,我會必須在整個桌子上拉一個連接,這可能會變得非常大。
對此的明顯反應是將項目中的計數器存儲在計數器中。然而,這不會起作用,因爲誰喜歡一件物品很重要,既用於在物品旁邊顯示,也用於隱藏用戶已經喜歡的物品的類似按鈕。
我的計劃是添加到所有可愛的項目中,我將存儲一個序列化數組的文本字段。這樣,一個項目的每一個拉將與誰喜歡它的完整列表來。有沒有更好的方法來做到這一點,或者這是推薦的方法?
同意。除非遇到性能問題,否則絕對不應該進行規範化。如果索引正確,「喜歡」表的大小並不重要。 – 2010-07-25 14:58:17