我有3个表格的问题,答案和user_answers。所有问题都在答案表中设置了相关答案,用户答案与answer_id一起存储在user_answer表中。
想象一下一个复选框类型调查,其中一个问题带有一个单选按钮。
我想知道是否可以将user_answers表限制为仅针对该特定question_id允许每个user_id 1个答案,但允许所有其他问题的多个答案。
我已经研究过解决方案,但找不到符合我具体用例的任何内容。
感谢任何帮助, 谢谢!
答案 0 :(得分:0)
你有三张桌子:
如果问题可能有多个答案,答案中会有多个答案("检查所有适用的答案和#34;问题类型),用户可以查看多个答案,相同(QID,UID)但在USER_ANSWERS中具有不同的AID。如果允许一个选择,ANSWERS中将有多个答案,但用户只能选择一个,从而在USER_ANSWERS中产生对(QID,UID)的单个引用。
我的建议如下 - 强制数据库级别
现在,你有这样的表结构:
示例数据:
<强>问题:强>
QID,QTYPE
Q1,&#39; S&#39; - 单个答案
Q2,&#39; M&#39; - 多个答案
<强>解答:强>
AID,QID,AQ_REF
A1,Q1,Q1 - 请注意,所有Q1答案都有AQ_REF = Q1
A2,Q1,Q1
A3,Q1,Q1
A4,Q2,A4 - 注意这有AQ_REF = A4
A5,Q2,A5 - 注意这有AQ_REF = A5
A6,Q2,A6 - 注意这有AQ_REF = A6
<强> USER_ANSWERS:强>
UAID,AID,AQ_REF,UID
UA1,A1,Q1,U1
UA2,A4,A4,U1
UA3,A6,A6,U1