【问题标题】:How to structure a database with questions and answers?如何构建包含问题和答案的数据库?
【发布时间】:2011-01-14 19:47:41
【问题描述】:

我将制作一个使用数据库的简单应用程序。我可能需要一些关于如何构建它的指导。

我将制作问题程序。我想到的是。

  • 一张带问题的桌子
  • 一张桌子 随着问题的难度
  • 一张表,其类别为 问题

但是,我该如何处理这些答案?将它们作为问题表中的单独列吗?这听起来是个不好的做法。(另外,我在哪里有正确答案)

每个问题将有 5 个答案,其中只有一个是正确的。

【问题讨论】:

  • 在决定表格时,应将有关单个对象的所有信息放在一起......关于问题难度,您还有哪些额外信息需要它在自己的表格中而不是在问题中桌子?或者您是说难度和类别将是查找表,而您只需将 FK 存储在问题表中?
  • 是的,它们将是问题表中的外键。为什么我要重复自己的写作,例如500 个问题的简单、中等、困难?类别也是如此,所以我的回答是肯定的,你的最后一个问题。

标签: database database-design data-structures


【解决方案1】:

答案表。主键可以是(问题 ID,答案 ID),其中答案 ID 可以是(a,b,c,d,e)。其他看起来合适的字段,还包括一个正确的答案二进制字段,即正确的问题为 1。

【讨论】:

  • 感谢 ryebr3ad 的详细快速和详细的回答。
【解决方案2】:

有一个answers 表,外键指向questions 表的主键

【讨论】:

  • 感谢 Nishant 的即时回复:)
【解决方案3】:

为什么不将所有问题数据保存在一张表中?比如:
question_id | category_id | difficulty | correct_answer | question_text
其中 category_id 是“类别”表的外键,而correct_answer 是问题表的外键。

对于答案,您可以执行以下操作
answer_id | question_id | answer_text | answer_order
问题 id 是指向问题表的外键 - 答案顺序是可用于对每个问题的答案进行排序的数字

【讨论】:

    猜你喜欢
    • 2011-06-09
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2020-11-15
    • 2011-04-07
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多