我什么时候应该使用数组列vs.铁路协会

时间:2015-07-22 16:59:02

标签: ruby-on-rails arrays postgresql ruby-on-rails-4

自Rails 4和Postgres 9以来,tags被引入。我还尝试使用数组列来存储categories或{{1}}之类的内容,我不经常更改内容,并将其用作搜索的参考/方面。我之前提到过另一个关于querying with array column的问题,其中一个答案是从不使用数组来存储数据。我很困惑,如果建议永远不要使用它,为什么会创建数组列。所以我的问题是

  

何时使用数组列vs. Rails中的模型关联?

1 个答案:

答案 0 :(得分:7)

根据我的经验,从数组列中检索和操作数据的速度较慢。所以我通常更喜欢联想。

  1. 拥有数组列,查询数据库并不灵活。
  2. 通过关联从数据库中提取数据的速度更快。
  3. 如果您将数据库中的书籍类别存储为数组,并且您决定更改其中一个类别的名称,该怎么办?

    关联它只是更改了某些Category的实例名称,因为它通过id连接到其他实例(例如书籍) 。使用数组,您必须遍历整个书籍集以更新类别的名称。

  4. 如果关联是一种过度杀伤,我会使用arrayjsonjsonb列来存储一些元数据。