我想知道使用整数数组是否更干净或更快速,而不是在多对多关系中创建额外的新表并使用外键来确保数据完整性。 你怎么认为?您是否认为使用数组是不行的?
最佳答案
用数组来实现 m 对 n 关系是不行的。
记下两个表之间的联接。您会注意到,现在不再是使用
=
作为连接条件的两个连接,而是使用@>
作为连接条件的单个连接(或LATERAL unnest
数组,这更糟)。这意味着您将减少到嵌套循环连接,如果表很大,这会很慢(即使您创建了 GIN 索引来支持@>
)。这样就无法实现引用完整性(外键约束)。
关于database - Postgresql:在多对多关系中使用数组而不是额外的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74821893/