4

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

什么时候在 Rails 中使用数组列与模型关联更好?

4

1 回答 1

9

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

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

  2. 通过关联从数据库中提取数据更快。

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

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

如果关联过大,我会使用array,jsonjsonbcolumn 来存储一些元数据。

于 2015-07-22T17:02:26.620 回答