什么时候应该使用数组列 v.s。 rails 中的协会

When should I use array columns v.s. associations in rails

从 Rails 4 和 Postgres 9 开始,引入了 array column。我还尝试使用数组列来存储类似 tagscategories 的东西,我不经常更改它,它用作搜索的参考/方面。我之前问过另一个关于 querying with array column 的问题,其中一个答案提到从不使用数组来存储数据。然后我很困惑,如果建议永远不要使用它,为什么要创建数组列。所以我的问题是

When is it considered better to use array column v.s. Model associations in Rails?

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

  1. 具有数组列,您在查询数据库时不那么灵活。

  2. 使用关联从数据库中提取数据更快。

  3. 如果您将书籍的类别作为数组存储在数据库中并且您决定更改其中一个类别的名称怎么办?

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

如果关联是多余的,我会使用 arrayjsonjsonb 列来存储一些元数据。