这种规范化多项选择测验计划数据库设计是否正常?

时间:2015-04-07 05:45:11

标签: python sql sqlite

我正在python中设计一个简单的多项选择测验程序,用户登录并进行5个问题的多项选择测验(从问题表中随机选择),程序结束测验并显示问题,他们的答案,正确的答案和他们的分数。

以下数据库设计是否正确?我有三张桌子,一张给学生,一张是问题(选项和答案),一张用于测验。

我想的真正问题是,是否可以在5个不同的场合将相同的外键(questionsID)插入测验表中?

enter image description here

2 个答案:

答案 0 :(得分:1)

我认为你不希望同样的问题多次出现在那里。为此,我假设您确保每个问题都有一个唯一的标识符,并且代码排除每个问题每个测验使用多次。如果是这种情况,那么是的,它应该可以正常工作。

澄清:如果你有两个问题;例如"字母表的第二个字母是什么?"指定为qID0001和第二个问题,"字母表的第26个字母是什么?"如果指定为qID0005,则应将QuestionsID设置为随机调用qIDxxxx并确保不会重复使用。

答案 1 :(得分:0)

我根据您的描述制作了以下架构:

学生(身份证,第一,第二,年龄,班级)

问题(id,text,FK correctOptionId)

选项(id,文字,FK问题)

测验(id,FK idStudent,finalScore)

QuizQuestions(id,FK quizId,FK questionId)

答案(id,FK questionId,FK optionId,FK studentId,更正)

有一些冗余,可以删除。我相信,它对未来的可扩展性稍微提高,最重要的是,它避免了你提到的多个FK问题