数量未知的PostgreSQL一对多
我有两个表格:数量未知的PostgreSQL一对多,sql,postgresql,schema,Sql,Postgresql,Schema,我有两个表格:response和answer。一个响应可以包含多个答案。因此,response应该对答案表有一个FK。然而,一个回答的答案数量没有限制 是否可以在这两个表之间指定一对多关系,而不必硬编码特定数量的列 是否可以指定这两者之间的一对多关系 不必硬编码特定列数的表 您可以创建一个包含两个外键的联接表,其中每一行表示响应和答案之间的关联,即,若id为1的响应与答案1和答案2关联,则表将包含这两行 response_id, answer_id 1, 1 1, 2 您可以使用以下查询选择您
response
和answer
。一个响应可以包含多个答案。因此,response
应该对答案表有一个FK。然而,一个回答的答案数量没有限制
是否可以在这两个表之间指定一对多关系,而不必硬编码特定数量的列
是否可以指定这两者之间的一对多关系
不必硬编码特定列数的表
您可以创建一个包含两个外键的联接表,其中每一行表示响应和答案之间的关联,即,若id为1的响应与答案1和答案2关联,则表将包含这两行
response_id, answer_id
1, 1
1, 2
您可以使用以下查询选择您的响应/回答关联
select *
from response r
join response_answer ra on ra.response_id = r.id
join answer a on a.id = ra.answer_id
编辑
上面的答案假设您实际上想要多对多而不是一对多的关系(即每个答案可以属于多个响应,而不仅仅是一个响应),否则更简单的解决方案是将响应fk添加到答案表中