将试题存储在数据库中 [英] Storing Exam Questions in a Database
本文介绍了将试题存储在数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
一年多来,我一直在考虑如何设计一个数据库来保存试题(开和关,大部分时间都关了)。
首先,简短地描述一下我要做的事情。我希望设计一个足够灵活的数据库来存储不同的问题类型(例如,简答题或多项选择题),并能够选择任意数量的这些问题作为考试存储。
我的问题是:
应如何存储试题?
由于不同的问题类型需要存储不同的字段,如果我将它们都放在同一个表questions
下,将会有许多额外的字段从未使用过。
如果我将问题类型划分到不同的表中,则在某些exam_questions
表中存储问题ID会困难得多,因为它们将来自不同的表。
我也想不出一种灵活的方式来存储信息。
例如
questions
- id
- question
- type (multiple choice, short response)
- choice_1 ( used for multiple choice questions)
- choice_2
- choice_3
- choice_4
- choice_5
- answer (short response answer here, or just a/b/c/d/e for multiple choice, t/f for true or false)
这样的设计会被推荐吗?如果没有,有人有什么建议吗?
我还有一个问题:
如果我要存储学生对其中一项考试的回答,这样存储会不会效率低下?
exam_responses
- id
- student_id
- exam_id
- question_id or question_number
- response
- mark
提前谢谢您。如果您需要任何其他信息,或者如果此问题有任何错误,请给我留下评论,我将尝试尽快解决它。
推荐答案
我将有单独的问题表和答题表,并使用问题2回答表将它们连接起来
question
--------
- id
- question
- type (multiple choice, short response)
answer
------
- id
- GUIorder (so you can change the sort order on the front end)
- answer
question2answer
---------------
- questionid
- answerid
现在在构建问题方面,一切都是动态的,并且没有空列。 快速加入会使您返回到主要问题的所有部分
您的exam_responses
表现在可以包含以下内容
- id
- questionid
- answerid
- studentid
- response
- mark
这篇关于将试题存储在数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文