日期:2014-05-18  浏览次数:20440 次

在线考试系统数据库设计问题,请指教
最近需要开发一个在线考试系统,在这里请教各位大侠。
  在线考试系统包括几类大的题型,有判断、单选、多选、问答等等,然后又分别属于语文、数学、英语等等,我初步的数据库设计是这样的:根据题型分为多个表,比如Panduan、Danxuan、Duoxuan等等几个表。表里面用字段来区分是属于语文、数学还是英语题,比如判断题,表中分设字段(ID、题目、问题1、问题2、......、问题10、正确答案、题目类别(语文/数学/英语)等)。然后还有组合体,比如英语中的阅读(其实就是题目加上单选),用一个单独的表储存题目,然后在此题目下添加对应的基本题,在基本题里面再加一个字段表示是否是属于某个组合题,免得在查看基本题的时候列出这些题目。最后生产试卷,根据不同的题型到不同的表中提取试题。
  由于我是第一次做这样的系统,初步的数据库设计是这样的。想问大家帮我想想有没有更好的数据库设计。由于最后组卷的时候要根据题型到不同的表中提取数据,因此还做一个表保存题型与表的对应关系,而我总感觉这样很不好。我本来想把所有的题目都放在一个表中,加一个字段分辨题型(判断/单选/多选等),但怕以后题目多了后会比较慢。
  不知道各位大侠有什么好的建议,请赐教,谢谢!

------解决方案--------------------
可以说每个科目之间是独立的,每个科目中的每个题型也是独立的,他们之间儿乎不可能存在关联查询,而你这样每一个题型表中有不同科目的题目,有英文,有中文,有罗马字符等等这样对数据的查询等操作是不是更麻烦点呢?个人建议每个科目中的每个题型建一个表.
------解决方案--------------------
不要建那么多表,其实很多是通用的,表多了不好开发和维护,建议楼主参考下问卷调研设计类数据库表结构
------解决方案--------------------
如果系统不大,不毕把表设计的过多