Postgresql:数组而不是额外的表在一个多对多的关系?



我想知道使用整数数组是否更干净或更快,而不是在m-to-m关系中创建额外的新表并使用外键来确保数据完整性。你觉得呢?你是说使用数组是不允许的吗?

实现m- n关系的数组是不允许的。

  1. 写出两个表之间的连接。您将注意到,现在不是以=作为连接条件的两个连接,而是以@>作为连接条件的单个连接(或者数组的LATERAL unnest,这更糟糕)。这意味着,如果表很大(即使创建一个GIN索引来支持@>),您将减少到嵌套循环连接,这将很慢。

  2. 这样就不能实现引用完整性(外键约束)。

最新更新