自Rails 4和Postgres 9以来,tags
被引入。我还尝试使用数组列来存储categories
或{{1}}之类的内容,我不经常更改内容,并将其用作搜索的参考/方面。我之前提到过另一个关于querying with array column的问题,其中一个答案是从不使用数组来存储数据。我很困惑,如果建议永远不要使用它,为什么会创建数组列。所以我的问题是
何时使用数组列vs. Rails中的模型关联?
答案 0 :(得分:7)
根据我的经验,从数组列中检索和操作数据的速度较慢。所以我通常更喜欢联想。
如果您将数据库中的书籍类别存储为数组,并且您决定更改其中一个类别的名称,该怎么办?
关联它只是更改了某些Category
的实例名称,因为它通过id
连接到其他实例(例如书籍) 。使用数组,您必须遍历整个书籍集以更新类别的名称。
如果关联是一种过度杀伤,我会使用array
,json
或jsonb
列来存储一些元数据。