【问题标题】:Database Design for a Questionnaire问卷的数据库设计
【发布时间】:2013-10-06 18:05:51
【问题描述】:

我有一个包含 100-200 个主题的数据库,每个主题有 20 个问题。每个问题可以有多个参数(最多 7 个),并且可以分成多组(最多 20 个)。将问题分成组是手动完成的。我必须将其存储到数据库中。我正在考虑以下几行:

制作一个表格来存储具有以下架构的问题: topic_id, question_id,question,sets,parameters,correct_answer

sets 列将存储像 1,2,3,4.. 参数列将像 a,b,c,d..一样存储。

我之前没有使用过多个值字段,我不知道这是否可行,因为我将在某个时候拥有超过 4000 行。

【问题讨论】:

  • 4000 行很小。别担心。只需通过以下答案即可。可以想象同一个问题出现在多个主题中吗?是否可以在多个问题中提供相同的答案?如果一个问题出现在多个主题中,是否可以想象它会有不同的答案集?无论如何,您都不想存储列表。你想要多对多的关系。

标签: mysql sql database-design database-schema


【解决方案1】:

逗号分隔值字段难以在选择中使用和维护。相反,最好使用多个表。具体来说,您将有一个 QuestionSets 表(问题所属的集合)和 QuestionParameter 表。

会有问题

  • question_id
  • topic_id,
  • 问题
  • 回答(是多项选择吗?)

然后您将拥有带有 ID 和其他值的 Sets/Parameters。映射表将引用这两个 ID

QuestionSets
question_id | set_id

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    相关资源
    最近更新 更多