在我看来,Postgresql数组数据类型的功能与标准的一对多和多对多关系重叠很多。
例如,一个名为users的表可能有一个名为“favorite_colors”的数组字段,或者可能有一个名为“favorite_colors”的单独表和一个“users”和“favorite_colors”之间的连接表。
在什么情况下数组数据类型可以使用而不是完整的连接?
不应该使用类似于关系的数组。它应该包含与一行非常紧密相关的索引值。例如,如果你有一张足球比赛结果的桌子,那么你就不需要做了
id team1 team2 goals1 goals2
但会这样做
id team[2] goals[2]
因为在这个例子中,大多数人还会考虑将其归一化为两个表是愚蠢的。
总而言之,我会在你对关系不感兴趣的情况下使用它,而在其他地方你会添加像field1 field2 field3这样的字段。