3

我目前正在从事一个项目,我实际上是在创建一个测验应用程序。它将能够进行具有多项选择或简答题的测验,题目介于 10 到 20 个之间。它需要有能力将用户的答案与正确答案进行对比,然后对用户的答案进行评分。

稍后,我可能会实现一个后端功能来在线创建测验,但现在我将把它留给直接使用数据库。

现在我的问题..我很迷茫如何设计我的数据库和表以允许所有功能。这是我目前的设置方式:

测验表

  • 名称行
  • 标识行

问题表

  • 标识行
  • 对应的测验 ID 行
  • 实际问题文本行

答案表

  • 对应的测验 ID 行
  • 对应的问题 ID 行
  • 实际答案文本行
  • if_correct_answer 行

所以每个测验都有自己的 id,然后每个问题都有自己的 id 以及它的父测验 id,然后答案将有一个父测验 id 和一个父问题 id。

截至目前,我的“正确答案”问题以这种方式运行:如果他们选择正确答案,if_correct_answer 行的值将大于 0,然后最后他们所有答案的值将相加,这就是他们做对了多少。

这是设计我的数据库的好方法吗?我在这里的另一篇文章中看到了基本思想,但我不确定我是否完全理解或正确使用它。我基本上只是对如何协调所有不同的ID感到困惑。(我是 mySQL 和 PHP 的初学者,这可能没有帮助)

4

2 回答 2

2

你的表结构对我来说看起来不错。您还需要另一个表来存储用户的答案。

用户答案表- 粗略结构

  • ID
  • 用户身份
  • quiz_id
  • question_id
  • answer_id
  • 回答日期

您还需要另一个表来存储用户的基本信息,例如姓名、用户 ID、电话等。

于 2012-08-24T05:08:20.813 回答
0

只是一个想法,您可以为测验的问题制作一个链接表,然后您可以建立一个可用于构建新测验的问题集合。粗略的轮廓:

测验表

  • 名称行
  • 标识行

测验表的问题

  • 测验编号
  • 问题编号

问题表

  • 标识行
  • 实际问题文本行

答案表

  • 标识行
  • 对应的问题 ID 行
  • 实际答案文本行

用户答案表 - 粗略结构

  • ID
  • 用户身份
  • quiz_id
  • question_id
  • answer_id
  • 回答日期
  • if_correct_answer 行
于 2012-08-24T10:03:18.813 回答