MySQL数据库设计用于在线考试。

3

我正在为在线考试模块创建优化的数据库。

我有两个选择:

  • 使用将问题、选项和答案存储在同一行中的模式。

    表:questions 列:q_id,question,opt1,opt2,opt3,opt4,opt5,ans

  • 使用每个操作都有三个不同表格的模式。

    表:questions 列:q_id,question

    表:options 列:q_id,opt_id,option

    表:answers 列:q_id,ans


如果你正在创建数据库,你如何知道它是否被优化了?;] - TBH
2
我猜他的意思是他正在尝试优化它。 - Ahmad Farid
5个回答

0

还有第三个选择:

q_id | question | options | answer

其中选项列的类型为文本,存储序列化数组或JSON。

对于您提供的2个选项:第二个将是首选武器


0

我会使用方案2,因为它允许您添加任意数量的答案。

但是您可以将答案"表格"合并到"选项"表格中。

q_id | opt_id | option | correct

这样,您也可以在每个问题中有多个正确答案。


0
如果答案数量固定,架构1更好;但如果问题可能有任意数量的答案,则此选项更好。
question_id,question,answer_id_of_the_solution

answer_id,question_id,answer

0

Schema 2更符合你的目标。


0

如果您希望在考试选项方面保持灵活性,Schema 2将是更好的选择。

然而,如果您确定每次可以设置固定数量的问题,您可能希望考虑将表“问题”和“选项”合并,并仅使答案因用户而异。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接