-2

我正在为一个大学项目设计一个在线数学测验,并且在设计我的数据库时遇到了一些麻烦。该网站的基本思想如下:教师一旦注册就可以登录并在其帐户中添加问题。他们可以选择让问题多选或对或错。他们还可以选择公开或不公开他们的问题。(如果他们选择将问题公开,其他教师可以查看这些问题。)教师可以随时使用他们私人银行中的问题和/或公共银行中的问题为他们的学生创建一个测验。每个问题可用于多个测验。这个想法是学生稍后将登录并进行测验;

我在决定如何存储测验和问题时遇到了一些麻烦,我希望有人可以帮助我。到目前为止,我有以下内容:

带有属性的“问题”表:QuestionID、SubjectArea、Concept、QuestionText、TeacherID、QuestionType、PublicYorN

带有属性的“MCQuestions”表:QuestionID、AnsA、AnsB、AnsC、AnsD、AnsE、CorrectAns

带有属性的“TorFQuestions”表:QuestionID , CorrectAns

带有属性的“测验”表:QuizID、CreationDate、TeacherID

我想我需要另一个表,如下所示:“QuizQuestions”,唯一的属性是QuizID、QuestionID,它们共同构成一个连接的主键。

我觉得我应该有一个单独的表格来存储问题的答案,我不确定我是否需要像上面所做的那样将真假问题和多项选择题分开。

(显然还有其他包含用户数据等的表,但这是我关心的部分。)非常感谢任何建议/输入!

4

2 回答 2

0

我认为我对这个开放式问题的唯一意见是:

将 MCQuestions 和 TorF Questions 组合成不同的格式。答案表有 4 个列。QID、AnswerID、答案、正确 Y/N。

然后一个对或错的问题有 2 行 - 例如。QID=888,AID=1,Ans=TRUE,真。下一行是 QID=888, AID=2,Ans=FALSE,false。

多项选择有几个 - 那么哪个是亮黄色的东西?QID=889,AID=3,Ans=月亮,假。QID=889,AID=4,Ans=Sun,真。QID=889,AID=5,Ans=火星,假。

然后您获取答案列表并可以使用 QID 和 AID 值填充一组单选按钮。然后,您将匹配代码中的整数,而不是需要传递以进行匹配的长文本字符串。如果答案中有特殊字符或其他任何字符,并且您将测验结果与唯一键匹配,可能会更容易一些。

除了那个微小的变化之外,如果不知道任何其他限制,很难提供帮助......尼克

于 2013-09-27T20:44:53.820 回答
0

一个简单而灵活的设计将是这样的:

  1. 问题表(id、文本、正确答案 id、所有其他问题相关数据)
  2. 答案表(id、问题 id 文本、所有其他与答案相关的数据)
  3. 测验表(id、文本、所有其他与测验相关的数据)
  4. 测验题表(测验编号、题目编号、题目显示顺序、其他相关数据如题目权重也可添加)
  5. 测验结果表(测验ID,问题ID,答案ID,用户ID,所有其他相关数据,例如答案日期等)。
于 2015-12-28T12:35:07.683 回答