因此,我有一個具有Post模型的基於MySQL的Rails應用程序,並且我希望每個帖子都有一個與其關聯的關鍵字列表。這些關鍵字非常具體,在兩個帖子之間共享一個關鍵字是非常罕見的。在Rails中存儲與帖子相關的數據陣列的最佳方式
有三個選項的位置:
- 逗號的「關鍵詞」屬性
- 有一個序列化的陣列中的「關鍵詞」屬性分隔列表
- 建立一個關鍵詞模型並存儲每個關鍵字根據自己的記錄並將它們與帖子關聯在一起編號
哪一個是最佳解決方案,爲什麼?
因此,我有一個具有Post模型的基於MySQL的Rails應用程序,並且我希望每個帖子都有一個與其關聯的關鍵字列表。這些關鍵字非常具體,在兩個帖子之間共享一個關鍵字是非常罕見的。在Rails中存儲與帖子相關的數據陣列的最佳方式
有三個選項的位置:
哪一個是最佳解決方案,爲什麼?
如果你想搜索標籤3,否則你將不得不在搜索中實例化每一個對象,或者做一個非常醜陋的SQL查詢。
如果你不想查詢標籤,序列化它會使它可讀,並避免一個表(和急切的加載)。
四。 ActsAsTaggableOn。
關鍵字/標籤是如此有用,你會希望一遍又一遍地使用它們。當好人免費躺下時,你只需重新發明輪子。
一般來說,這個決定取決於你計劃使用這個關鍵字列表。如果您打算對多個記錄進行任何聚合,將其放入單個屬性(序列化或逗號)將會讓您的生活變得艱難。如果不簡單,總是一個不錯的選擇。
正如@Mori ActsAsTaggable所述,即使它最適合共享關鍵字(標籤),它也是一個不錯的選擇。