将试题存储在数据库中 [英] Storing Exam Questions in a Database

查看:12
本文介绍了将试题存储在数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一年多来,我一直在考虑如何设计一个数据库来保存试题(开和关,大部分时间都关了)。

首先,简短地描述一下我要做的事情。我希望设计一个足够灵活的数据库来存储不同的问题类型(例如,简答题或多项选择题),并能够选择任意数量的这些问题作为考试存储。

我的问题是:

应如何存储试题?

由于不同的问题类型需要存储不同的字段,如果我将它们都放在同一个表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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆