有问题和答案的数据库结构

时间:2011-01-16 16:55:41

标签: database database-design

我正在设计一个包含问题,答案和类别的数据库。

一个问题可以属于许多类别,一个类别可以有很多问题。 所以这种关系是多对多的。

一个问题表
一类表
一个表包含上面两个表的主键

所以现在我的问题是,将答案(a,b,c,d,e)存储在名为答案的自己的表中是否必要或“更好”?然后,答案表具有问题表中主键的外键。

或者我应该在问题表中只有5列包含答案以及正确的答案吗?

在我读完之后,建立一对一的关系是不正常的。

提前致谢!

2 个答案:

答案 0 :(得分:4)

制作单独的answers表格。有两个好处:

  1. 它适用于关系范式 - 与许多答案相关的一个问题。
  2. 如果答案选项超过5,您将具有灵活性。

  3. 答案表应如下所示:

    ANSWERS
      answer_id (PK)
      answer_text
      is_correct
      serial_number
      question_id (FK)
    

    现在,您将一个答案存储在一行中......对于serial_number(a,b,c ..或1,2,3 ..或i,ii,iii,......等等),您使用{{ 1}}字段。 serial_number指向正确答案。

    您可以按

    选择答案列表
    is_correct

答案 1 :(得分:1)

如果你肯定知道总会得到答案(既不多也不少),那么在问题表中列出它们是合理的。它通常会简化您的查找过程并提高效率。但是,如果您有时会有不同数量的答案,或者将来可能会有答案,那么您的答案应该有自己的答案。