我应该何时在rails中使用数组列和关联

Chr*_*ung 4 arrays postgresql ruby-on-rails ruby-on-rails-4

自从Rails 4和Postgres 9开始array column实施.我使用阵列列来存储类似也尝试tags或categories,我不经常改变的,它被用作参考/刻面进行搜索.我之前提出了另一个关于使用数组列进行查询的问题,其中一个答案提到永远不要使用数组来存储数据.我很困惑,如果建议永远不要使用它,为什么会创建数组列.所以我的问题是

什么时候在Rails中使用数组列和模型关联被认为更好?

And*_*eko 7

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

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

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

如果关联是一种矫枉过正的话array,我会选择使用json或jsonb列来存储一些元数据.