数量未知的 PostgreSQL 一对多

PostgreSQL one-to-many with an unknown amount

我有两个 table:responseanswer。单个响应可以包含多个答案。所以 response 应该对答案 table 有一个 FK。但是,一个回复的答案数量没有限制。

是否可以指定这两个 table 之间的一对多关系而不必硬编码特定数量的列?

Is it possible to specify a one-to-many relationship between these two tables without having to hardcode a specific number of columns?

您可以创建一个由两个外键组成的联接 table,其中每一行代表响应和答案之间的关联,即如果 ID 为 1 的响应与答案 1 和 2 相关联,则您的 table 将包含这两行

response_id, answer_id
1, 1
1, 2

并且您可以使用以下查询select您的 response/answer 关联

select * 
from response r
join response_answer ra on ra.response_id = r.id
join answer a on a.id = ra.answer_id

编辑

上面的答案假设您实际上想要多对多而不是一对多关系(即每个答案可以属于许多响应而不是一个)否则更简单的解决方案是添加响应fk 到答案 table.