存储正确答案以进行检查

Jor*_*yvD 6 mysql normalization database-design

我正在为投票应用程序设计一个数据库。用户可以回答一堆问题,然后我们将它们存储起来。

相关的 ERD 部分 在此处输入图片说明

我想存储每个问题的正确答案,以便我们可以检查他们是否正确回答了问题。

问题可以有不同的“类型”:

  • 细绳
  • 数字
  • single_response
  • 多重响应

我应该如何存储正确答案?

添加correct_answerquestionsoptions

加入只是一个correct_answer字段questions将不会在情况下,工作questiontype multiple_reponse。我想过添加correct_answer到两者questionsoptionswherequestions将有一个字符串或数字与正确的答案,并options会简单地得到一个trueor false。如果所有我们希望检查optionscorrect_answer设置为true被选中与否,如果一个optioncorrect_answer设置为false选择

创建一个名为的新表 correct_answer

添加 2 列:

  • correct_answer
  • options_id

然后检查是否设置了任何一个。我们必须correct_answer为每个option.

添加correct_answerquestions

我们可以使用type来确定如何阅读correct_answer,然后correct_answer直接检查或explode()以逗号分隔的option_id值来检查答案

我想知道哪个选项是最佳实践,或者是否有人有更好的主意。

我的整个 sql:小提琴

mou*_*iin 1

如何在 Question_Option 实体中添加 2 列,其中一列为 IsCorrectAnswer 和 HasMultiAnswers ?您可以检查 HasMultiAnswers 设置为 true 的答案计数。