我有一个简单的调查数据库,其中提出了一系列线性问题。数据库设置如下。
Survey Table
id: PK
(other details)
Question Table
id: PK
survey_id: FK
(other details)
Response Table
id: PK
question_id: FK
(other details)
我被要求修改调查以允许N个重复的问题组。例如。
设计具有重复组的调查数据库的最佳方法是什么?
我考虑过使用问题规则表来指导问题。例如。
Question Rule Table
id: PK
question_id: FK
response_validation_rule (possibly a regex pattern)
next_question_id
这是实施重复群组问题的最佳方式吗?我也猜测也很难规范化数据。任何建议将不胜感激。
答案 0 :(得分:1)
问题表中的自我多对多关系可能会有所帮助。
多对多关系将问题与其他问题联系起来。
达到获取相关问题的标准:
如果是,请转到3
可以通过将答案表中的FK添加到多对多表来完成。
像这样的东西:
我建议不要在Related-Question表中使用代理标识符列。
{main question id, related question id,answer id}
{main question id <> related question id}