Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数量未知的PostgreSQL一对多_Sql_Postgresql_Schema - Fatal编程技术网

数量未知的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添加到答案表中