我正在为在线考试模块创建优化的数据库。
我有两个选择:
使用将问题、选项和答案存储在同一行中的模式。
表:questions 列:q_id,question,opt1,opt2,opt3,opt4,opt5,ans
使用每个操作都有三个不同表格的模式。
表:questions 列:q_id,question
表:options 列:q_id,opt_id,option
表:answers 列:q_id,ans
我正在为在线考试模块创建优化的数据库。
我有两个选择:
使用将问题、选项和答案存储在同一行中的模式。
表:questions 列:q_id,question,opt1,opt2,opt3,opt4,opt5,ans
使用每个操作都有三个不同表格的模式。
表:questions 列:q_id,question
表:options 列:q_id,opt_id,option
表:answers 列:q_id,ans
还有第三个选择:
q_id | question | options | answer
其中选项列的类型为文本,存储序列化数组或JSON。
对于您提供的2个选项:第二个将是首选武器
我会使用方案2,因为它允许您添加任意数量的答案。
但是您可以将答案"表格"合并到"选项"表格中。
q_id | opt_id | option | correct
这样,您也可以在每个问题中有多个正确答案。
question_id,question,answer_id_of_the_solution
answer_id,question_id,answer
Schema 2更符合你的目标。
如果您希望在考试选项方面保持灵活性,Schema 2将是更好的选择。
然而,如果您确定每次可以设置固定数量的问题,您可能希望考虑将表“问题”和“选项”合并,并仅使答案因用户而异。