4 系统的具体设计和实现
4.1 系统的数据库设计
结 合 系 统 的 功 能 和 分 析 , 数据 库 的设 计 模 型 如 图 : 4-1. 问 题 选 项 表
T_Q_ELEMENTS,问题表 T_QUESTIONS,学生信息表 T_STUDENTS,教师
表 T_TEACHERS, 科目表 T_SUBJECTS, 章节表 T_CHAPTS, 班级表 T_CLASS,
试 卷 参 数 表 T_EXAM_PARAM, 学 生 试 卷 表 T_EXAMS, 试 卷 组 成 元 素 表
T_EXAM_ELEMENTS。
教师在页面添加试卷的参数向试卷参数表(T_EXAM_PARAM)中添加参
数 后 , 发 布 此 试 卷 , 学 生 可 以 注 册 考 试 , 注 册 时 首 先 会 从 试 卷 参 数 表
(T_EXAM_PARAM)中读取相应的参数如单选题个数等,利用这些参数从题
目表(T_QUESTIONS)中随机选取问题,而这些问题的选项可以从问题选项
表(T_Q_ELEMENTS)关联查出,然后把这些问题的 id 添加到试卷组成元素
表(T_EXAM_ELEMENTS)中,最后生成学生试卷表(T_EXAMS)。当学生
在线答题时,会跟据学生试卷(T_EXAMS)的 id 查出试卷组成元素表中的记录得
到问题 id,利用问题的 id 得到问题和相关联的问题选项。学生保存答案时按题
型分为两种情况,一是保存选择性的题目,此时就把被选中的问题的选项的 id
存入试卷组成元素表中对应的学生答案字段中。另外就是非选择性题目,即需
要输入文字的题目,此时把输入的文字存入成元素表中对应的学生答案字段中。
其中需要说明的是在实际编写代码时,对数据库做了一些改进。如问题表
(T_QUESTIONS)与科目表(T_SUBJECTS)间的关联是用问题表中的科目名
称(strSUBName)与科目表中的科目名称(strNAME)。同时教师和科目间的
关联关系,在本系统中还没有应用到,但是出于以后的扩展考虑,仍然在教师
表中建立一个字段科目的 id。所以在设计数据库时并不是一味的追求数据库设
计的规范性,而是结合实际情况,以提高系统效率为目的。因此某些冗余字段
的出现,也正是出于此目的,例如试卷参数表(试卷参数表)中的试卷名称
strNAME 与学生试卷表中的试卷名称 strName,就是冗余字段,当需要查出某
学生参加的考试名称时就无需关联试卷参数表,这样就可以减少系统的开销,
提高查询速度。
第 8 页 共 42 页