postgresql 联接表与外键数组?[重复]

vsaztqbk  于 2023-03-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(119)

此问题在此处已有答案

How to add Foreign key constraint on array in PostgreSQL?(1个答案)
SQL Foreign Key Array referencing non-array(3个答案)
10天前关闭。
我正在建模多对多的关系,这种关系大多数时候只能从一端访问,它更像是一个层次结构,自上而下访问,而不是相反。

调查具有并属于许多问题具有并属于许多答案

这两种关系必须是多对多,因为同一个问题可以在不同的调查中重复使用,并且在许多问题中可以使用相同的答案。这是一个要求。
标准的M2M实现将使用两个连接表surveys_questionsquestions_answers,而我考虑使用PostgreSQL的整数数组来存储Survey中的question_ids和Question中的answer_ids
我们可以利用ANY运算符查询与外键数组匹配的所有行。
我们如何使用SQL查询所有调查的问题和问题的答案?
我们如何匹配外键数组返回的行的顺序?例如,使用question_ids = [1,2,3]可以保证返回顺序为1,2,3的问题行。
与连接表相比(假设索引正确,无论索引是什么),这在性能方面表现如何?
你会建议这样做吗?有没有一些关于像这样建模M2M的资源?

更新

曾经有一个建议是在PostgreSQL 9.3中添加数组外键的引用完整性,但是没有被包含在内:http://blog.2ndquadrant.com/postgresql-9-3-development-array-element-foreign-keys/
关于使用外键数组PostgreSQL JOIN with array type with array elements order, how to implement?维护顺序的SO问题

ivqmmu1c

ivqmmu1c1#

使用连接表方法。数组方法非常不标准,以至于你不得不问它能工作多少,而另一种方法是完全标准的。

相关问题