我有两个表:response
和answer
。单个响应可以包含多个答案。所以response
应该有答案表的FK。但是,一个回复的答案数量没有限制。
是否可以在这两个表之间指定一对多关系,而无需对特定数量的列进行硬编码?
答案 0 :(得分:1)
是否可以指定这两者之间的一对多关系 表格而不必硬编码特定数量的列?
您可以创建一个由两个外键组成的连接表,其中每一行代表一个响应和一个答案之间的关联,即如果id为1的响应与答案1和2相关联,那么您的表将包含这两行
SELECT
count(*) as Received
FROM
( select 3 as RqType,
'2015-10-01' as beginDate,
'2015-10-20' as endDate) as PV,
Request r
WHERE
request_received_date between PV.beginDate and PV.endDate
AND case when PV.RqType = 100 then 1=1
when PV.RqType = 99 then r.request_type_id <> 5
when PV.RqType <= 6 then PV.RqType = r.request_type_id
end
您可以使用以下查询
选择您的回答/答案关联response_id, answer_id
1, 1
1, 2
修改强>
上面的答案假设你实际上想要一个多对多而不是一对多的关系(即每个答案可以属于许多响应,而不仅仅是一个)否则更简单的解决方案是将响应fk添加到答案表。