【发布时间】:2014-05-15 11:32:21
【问题描述】:
一年多来,我一直在考虑如何设计一个数据库来保存试题(时断时续,大部分时间都是关闭的)。
首先,简要描述一下我所追求的。我想设计一个足够灵活的数据库来存储不同的问题类型(例如,简答题或多项选择题),并且能够选择任意数量的这些问题作为考试进行存储。
我的问题是:
试题应该如何存储?
由于不同的问题类型需要存储不同的字段,如果我将它们都放在同一张表questions下,将会有很多额外的字段从未使用过。
如果我将问题类型分成不同的表,那么将 question_id 存储在一些 exam_questions 表中会更加困难,因为它们将来自不同的表。
我也想不出一种灵活的方式来存储信息。
例如,
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
提前谢谢你。如果您想了解任何其他信息,或者此问题有任何问题,请给我留言,我会尽快修复。
【问题讨论】:
-
最好把问题和答案分开
标签: sql database database-design database-schema