database - Postgresql:在多对多关系中使用数组而不是额外的表?

标签 database postgresql many-to-many

我想知道使用整数数组是否更干净或更快速,而不是在多对多关系中创建额外的新表并使用外键来确保数据完整性。 你怎么认为?您是否认为使用数组是不行的?

最佳答案

用数组来实现 m 对 n 关系是不行的。

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

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

关于database - Postgresql:在多对多关系中使用数组而不是额外的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74821893/

相关文章:

database - 我如何将 href 与 id 号结合起来

postgresql - 将字符替换为 postgresql 中的另一个字符

java - Hibernate ManyToMany 只持久化

mySQL - 我应该反规范化吗?

database - InfluxDB 中的事务操作

mysql 如果更新后全部为空则删除行而不触发

postgresql - 在查询中获取最高价和最低价以及卖家

sql - 获取最后一个插入 ID 的标准方法是什么?

javascript - 像 web-app 这样的 twitter 中的 Sequelize 中的多对多 self 引用

python - 在 Django 的 ManyToManyField 中缓存