2014-12-27 83 views
0

我想知道從數據庫中的多重選擇中存儲值的最佳方式是什麼?Rails:從多個選擇中存儲和檢索值

我有一個模型「人」,我需要存儲人們的偏好可以是多個值

我應該保存自己的喜好作爲一個陣列上的同一個表或創建另一個表具有以下結構?

People_Preferences - PERSON_ID - Preference_id(存儲只是一個preference_id)

我需要能夠通過人們的喜好進行篩選。

哪種方法最好還是有更好的方法?

回答

1

聽起來你所需要的只是一個連接表「people_preferences」和一個來自Person模型的preferences的habtm關係,以及另一個從Preference to Person的habtm關係。這將是我的毫不猶豫的建議。

但它確實取決於一系列因素。 Postgres支持數組類型,這意味着不需要連接,並且可以使用intarray類型來保存外鍵,但當數組值引用其他表中的行時,參照完整性很難實現。如果你使用mysql,那麼這不是一個真正的選擇。