1.数据库逻辑设计
1.1.1ER图
1.1.2数据字典
(1)考试信息表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
title | varchar(255) | 否 | 否 | 考试名称 |
content | varchar(255) | 否 | 否 | 考试描述 |
open_type | int(11) | 否 | 否 | 考试类型 |
join_type | int(11) | 否 | 否 | 组题方式 |
level | int(11) | 否 | 否 | 考试难度 |
state | int(11) | 否 | 否 | 考试状态 |
time_limit | tinyint(3) | 否 | 否 | 是否限时 |
start_time | datetime | 否 | 否 | 开始时间 |
end_time | datetime | 否 | 否 | 结束时间 |
create_time | datetime | 否 | 否 | 创建时间 |
update_time | datetime | 是 | 否 | 更新时间 |
total_score | int(11) | 否 | 否 | 总分数 |
total_score | int(11) | 否 | 否 | 总时长 (分钟) |
qualify_score | int(11) | 否 | 否 | 及格分数 |
(2)班级考试表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(32) | 否 | 是 | 自增id |
exam_id | varchar(32) | 否 | 否 | 考试id |
depart_id | varchar(32) | 否 | 否 | 班级id |
(3)考试题库表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
exam_id | varchar(64) | 否 | 否 | 考试id |
repo_id | varchar(64) | 否 | 否 | 题库id |
radio_count | int(11) | 否 | 否 | 单选题数量 |
radio_score | int(11) | 否 | 否 | 单选题分数 |
multi_count | int(11) | 否 | 否 | 多选题数量 |
multi_score | int(11) | 否 | 否 | 多选题分数 |
judge_count | int(11) | 否 | 否 | 判断题数量 |
judge_score | int(11) | 否 | 否 | 判断题分数 |
sap_count | int(11) | 否 | 否 | 简答题数量 |
sap_score | int(11) | 否 | 否 | 简答题分数 |
(4)用户试卷表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
user_id | varchar(64) | 否 | 否 | 用户id |
depart_id | varchar(32) | 否 | 否 | 班级id |
exam_id | varchar(32) | 否 | 否 | 考试id |
title | int(11) | 否 | 否 | 考试名称 |
total_time | int(11) | 否 | 否 | 考试时长 |
user_time | int(11) | 否 | 否 | 用户时长 |
total_score | int(11) | 否 | 否 | 试卷总分 |
qualify_score | int(11) | 否 | 否 | 及格分 |
obj_score | int(11) | 否 | 否 | 客观分 |
subj_score | int(11) | 否 | 否 | 主观分 |
user_score | int(11) | 否 | 否 | 用户得分 |
has_saq | tinyint(3) | 否 | 否 | 是否包含简答题 |
state | int(11) | 否 | 否 | 试卷状态 |
create_time | datetime | 否 | 否 | 创建时间 |
update_time | datetime | 是 | 否 | 更新时间 |
limit_time | datetime | 否 | 否 | 截止时间 |
(5)用户试卷表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
paper_id | varchar(64) | 否 | 否 | 试卷id |
qu_id | varchar(64) | 否 | 否 | 题目id |
qu_type | int(11) | 否 | 否 | 题目类型 |
answered | tinyint(3) | 否 | 否 | 是否作答 |
answer | varchar(5000) | 否 | 否 | 主观答案 |
sort | int(11) | 否 | 否 | 问题排序 |
score | int(11) | 否 | 否 | 题目分数 |
actual_score | int(11) | 否 | 否 | 实际得分 |
is_right | tinyint(3) | 否 | 否 | 是否答对 |
(6)试卷答案表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
paper_id | varchar(64) | 否 | 否 | 试卷id |
answer_id | varchar(32) | 否 | 否 | 回答项id |
qu_id | varchar(64) | 否 | 否 | 题目id |
is_right | tinyint(11) | 否 | 否 | 是否正确 |
checked | tinyint(11) | 否 | 否 | 是否选中 |
sort | int(11) | 否 | 否 | 排序 |
abc | varchar(64) | 否 | 否 | 选项标签 |
(7)题目表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
qu_id | varchar(64) | 否 | 是 | 题目id |
qu_type | int(11) | 否 | 否 | 题目类型 |
level | int(11) | 否 | 否 | 题目难度 |
content | varchar(2000) | 否 | 否 | 题目内容 |
create_time | datetime | 否 | 否 | 创建时间 |
update_time | datetime | 否 | 否 | 更新时间 |
remark | varchar(255) | 否 | 否 | 题目备注 |
analysis | varchar(2000) | 否 | 否 | 整体解析 |
(8)题目答案表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
answer_id | varchar(64) | 否 | 是 | 答案id |
qu_id | varchar(64) | 否 | 否 | 题目id |
is_right | tinyint(3) | 否 | 否 | 是否正确 |
content | varchar(5000) | 否 | 否 | 答案内容 |
analysis | varchar(5000) | 否 | 否 | 答案解析 |
(9)题目题库表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
qu_id | varchar(64) | 否 | 否 | 问题id |
repo_id | varchar(64) | 否 | 否 | 题库id |
qu_type | varchar(64) | 否 | 否 | 题目类型 |
sort | int(11) | 否 | 否 | 排序 |
(10)题库表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
repo_id | varchar(255) | 否 | 否 | 题库id |
title | varchar(255) | 否 | 否 | 题库名称 |
repo_count | int(11) | 否 | 否 | 单选数量 |
mulit_count | int(11) | 否 | 否 | 多选数量 |
judge_count | int(11) | 否 | 否 | 判断数量 |
remark | varchar(255) | 否 | 否 | 题库备注 |
create_time | datetime | 否 | 否 | 创建时间 |
update_time | datetime | 是 | 否 | 更新时间 |
(11)用户错题表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
exam_id | varchar(64) | 否 | 否 | 考试id |
user_id | varchar(64) | 否 | 否 | 用户id |
qu_id | varchar(64) | 否 | 否 | 题目id |
create_time | datetime | 否 | 否 | 加入时间 |
update_time | datetime | 否 | 否 | 最近错误时间 |
wrong_count | int(11) | 否 | 否 | 错误次数 |
gu_id | varchar(64) | 否 | 否 | 题目id |
sort | int(11) | 否 | 否 | 错题序号 |
(12)考试记录表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
exam_id | varchar(64) | 否 | 否 | 考试id |
user_id | varchar(64) | 否 | 否 | 用户id |
try_count | int(11) | 否 | 否 | 考试次数 |
max_score | int(11) | 否 | 否 | 最高分 |
passed | tinyint(3) | 否 | 否 | 是否通过 |
create_time | datetime | 否 | 否 | 创建时间 |
update_time | datetime | 是 | 否 | 更新时间 |
(13)班级信息表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
dept_name | varchar(255) | 否 | 否 | 班级名称 |
dept_id | varchar(255) | 否 | 否 | 班级id |
(14)用户表
字段名称 | 数据类型 | 是否可以为空 | 是否为主键 | 字段说明 |
id | varchar(64) | 否 | 是 | 自增id |
user_name | varchar(255) | 否 | 否 | 用户名 |
real_name | varchar(255) | 否 | 否 | 真实姓名 |
password | varchar(255) | 否 | 否 | 密码 |
salt | varchar(255) | 否 | 否 | 密码盐 |
depart_id | varchar(32) | 否 | 否 | 班级id |
role_type | tinyint(3) | 否 | 否 | 角色类型 |
create_time | datetime | 否 | 否 | 创建时间 |
update_time | datetime | 否 | 否 | 更新时间 |
state | int(11) | 否 | 否 | 状态 |
1.2数据库物理设计
1.2.1索引
无
1.2.2安全机制
系统安全、数据安全
数据安全:
程序启动需要经过登陆认证,登陆ID 和密码正确才能启动程序。
程序内部的任何会引起数据库改动的操作(增删改)均经过了严密的审查判定,以确保数据库的准确性和一致性。
系统安全:
登陆需经过身份认证,即身份口令密码一致才可登录。
不同的用户角色有不同的权限,用户只能使用分配给他的权限,无法越权操作。