这个标准化的多项选择测验程序数据库设计可以吗?

2024-06-10 00:36:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

enter image description here


Tags: 答案用户程序数据库选项学生分数外键
2条回答

我想你不希望同一个问题多次出现。为了达到这个目的,我假设你已经确保每个问题都有一个唯一的标识符,并且被代码排除在每个学生的每个测验中使用不止一次。如果是这样的话,那么是的,它应该可以正常工作。在

澄清:如果你有两个问题,比如说“字母表的第二个字母是什么?”指定为qID0001和第二个问题,“字母表的第二十六个字母是什么?”指定为qID0005,则应将QuestionsID设置为随机调用qIDxxxx,并确保其中一个不被重用。在

根据你的描述,我做了以下的计划:

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

问题(id,文本,FK correctOptionId)

选项(id、文本、FK问题)

测验(id,FK idStudent,finalScore)

测验问题(id,FK quizId,FK questionId)

答案(id,FK问题id,FK选项id,FK学生id,正确)

有一些冗余,可以去掉。我相信,对于未来来说,它的可扩展性稍高一些,最重要的是,它避免了您提到的多FK问题

相关问题 更多 >