数据库设计问题

时间:2009-11-19 14:48:20

标签: database schema schema-design

我正在设计一个简单的在线考试系统数据库。但我无法弄清楚应该如何存储问题和答案。我认为问题和答案是不同的实体。在同一个问题集中将同时存在MCQ和短问题,并且集合中的问题数量可能是动态的(由教师选择)。

请有人帮帮我

提前致谢

3 个答案:

答案 0 :(得分:2)

我看到你正在寻找这样的东西:

  1. 用户表 - 将回答问题的每个人。它将具有UserId和其他配置文件信息 - 名称,类,照片等。
  2. 问题表 - 它将包含由(userid)和问题文本创建的questionid
  3. AnswerOption - 它将包含optionid,链接到问题,答案选项文本
  4. UserAnswer - 它将具有useranswerid,questionid,optionid
  5. 所以例如你有这个问题:“2 * 2多少钱?”和答案选项是“4”,“5”,“6”。

    在这种情况下,您将在问题表中有1条记录,在AnswerOption表中有3条记录。

    现在当有人回答问题时,您会在UserAnswer表中插入一条记录,其中包含相应的userid,questionid和optionid。

    这是你一直在寻找的吗?

    当然,您还应该考虑如何在测试等方面对问题进行分组。

答案 1 :(得分:1)

由于您有多项选择题(MCQ,我认为),您需要仔细考虑MCQ中的备选方案是问题的一部分还是具有状态的答案(错误,正确答案的一部分,正确)。如果问题有多个答案,请将它们保存在单独的表中。如果一个问题只有一个答案,那么请将它们保存在一个表中。

答案 2 :(得分:1)

从最小的项目开始。一个问题可以有多个答案选择,其中一个是好的。所以你可以有一个答案表。

解答: AnswerID QuestionID 选择 文本 好(布尔限定符)

问题: QuestionID 文本 点

这只是一个建议。这一切都取决于你想做什么。但首先,您按类别列出您的物品。喜欢活页纸。