Mysql数据库设计在线考试

时间:2010-12-08 11:29:00

标签: php mysql

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

我有两个选择:

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

    表:问题 Col:q_id,question,opt1,opt2,opt3,opt4,opt5,ans

  • 每个操作我有3个不同表格的模式。

    表:问题 Col:q_id,问题

    表:选项 Col:q_id,opt_id,option

    表答案 Col:q_id,ans

5 个答案:

答案 0 :(得分:0)

架构2更符合你应该瞄准的目标。

答案 1 :(得分:0)

可能有第三种选择:

q_id | question | options | answer

其中option列的类型为text,并存储序列化数组或json。

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

答案 2 :(得分:0)

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

然而,您可以将答案table合并到options表格中。

q_id | opt_id | option | correct

通过这种方式,每个问题也可以有多个正确答案。

答案 3 :(得分:0)

如果您希望在考试选项中保持灵活性,

架构2将是更好的选择。

但是,如果您确定每次都可以设置一定数量的问题,您可能需要考虑将表格“问题”和“选项”合并为一个,并且每个用户的答案都不同。

答案 4 :(得分:0)

如果答案数量固定,则架构1会更好

但如果问题可能有任何数量的答案,那就更好了

question_id,question,answer_id_of_the_solution

answer_id,question_id,answer