## 本项目实现的最终作用是基于SSM在线考试系统
## 分为3个角色
### 第1个角色为管理员角色,实现了如下功能:
- 修改个人资料
- 修改密码
- 判卷管理
- 成绩管理
- 管理员登录
- 试卷管理
- 试题管理
### 第2个角色为教师角色,实现了如下功能:
- 判卷管理
- 成绩管理
- 教师登录
- 试卷管理
- 试题管理
### 第3个角色为学生角色,实现了如下功能:
- 修改个人资料
- 修改密码
- 在线考试
- 学生登录
## 数据库设计如下:
# 数据库设计文档
**数据库名:** ssm_online_exam_system
**文档版本:**
| 表名 | 说明 |
| :---: | :---: |
| [exam](#exam) | 试卷表 |
| [exam_detail](#exam_detail) | 考试的信息 |
| [exam_question](#exam_question) | 试卷和问题的关联表 |
| [exam_record](#exam_record) | 考试记录 |
| [exam_student](#exam_student) | 试卷和学生的关联表 |
| [notice](#notice) | 公告管理 |
| [question](#question) | 问题表 |
| [sys_log](#sys_log) | 系统日志 |
| [sys_user](#sys_user) | |
**表名:** <a id="exam">exam</a>
**说明:** 试卷表
**数据列:**
| 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | exam_id | int | 10 | 0 | N | Y | | |
| 2 | exam_name | varchar | 128 | 0 | Y | N | NULL | 试卷名 |
| 3 | exam_start_date | datetime | 19 | 0 | Y | N | NULL | 考试开始时间 |
| 4 | exam_last_time | bigint | 20 | 0 | Y | N | NULL | 考试持续的时间,单位为分钟 |
| 5 | reviewer_id | int | 10 | 0 | Y | N | NULL | 审批老师的id |
| 6 | create_by | bigint | 20 | 0 | Y | N | NULL | 创建者 |
| 7 | create_date | datetime | 19 | 0 | Y | N | NULL | |
| 8 | update_by | bigint | 20 | 0 | Y | N | NULL | |
| 9 | update_date | datetime | 19 | 0 | Y | N | NULL | |
| 10 | score | decimal | 11 | 0 | Y | N | NULL | 试卷总分 |
**表名:** <a id="exam_detail">exam_detail</a>
**说明:** 考试的信息
**数据列:**
| 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | id | int | 10 | 0 | N | Y | | |
| 2 | exam_id | int | 10 | 0 | Y | N | NULL | 试卷的id |
| 3 | stu_id | int | 10 | 0 | Y | N | NULL | 学生的id |
| 4 | score | decimal | 11 | 0 | Y | N | NULL | 考试成绩 |
**表名:** <a id="exam_question">exam_question</a>
**说明:** 试卷和问题的关联表
**数据列:**
| 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | eq_id | int | 10 | 0 | N | Y | | |
| 2 | exam_id | int | 10 | 0 | Y | N | NULL | 试卷的id |
| 3 | question_id | int | 10 | 0 | Y | N | NULL | 问题的id |
**表名:** <a id="exam_record">exam_record</a>
**说明:** 考试记录
**数据列:**
| 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | exam_id | int | 10 | 0 | N | Y | | |
| 2 | stu_id | int | 10 | 0 | N | Y | | |
| 3 | question_id | int | 10 | 0 | N | Y | | |
| 4 | answer | text | 65535 | 0 | Y | N | NULL | |
| 5 | final_score | decimal | 11 | 0 | Y | N | 0 | 最终成绩 |
**表名:** <a id="exam_student">exam_student</a>
**说明:** 试卷和学生的关联表
**数据列:**
| 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | es_id | int | 10 | 0 | N | Y | | |
| 2 | student_id | int | 10 | 0 | Y | N | NULL | 学生的id |
| 3 | exam_id | int | 10 | 0 | Y | N | NULL | 试卷的id |
| 4 | status | char | 1 | 0 | Y | N | '0' | 状态,0表示还未参加考试,1表示参加考试完成 |
| 5 | total_score | decimal | 11 | 0 | Y | N | NULL | 总分 |
| 6 | reading | char | 1 | 0 | Y | N | '1' | 1表示正在阅卷中,0表示阅卷完成 |
**表名:** <a id="notice">notice</a>
**说明:** 公告管理
**数据列:**
| 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | notice_id | int | 10 | 0 | N | Y | | 公告的id |
| 2 | title | varchar | 128 | 0 | Y | N | NULL | 公告的标题 |
| 3 | content | varchar | 1024 | 0 | Y | N | NULL | 公告的内容 |
| 4 | type | char | 1 | 0 | Y | N | NULL | 公告的类型:1表示需要弹框提示2表示页面提示 |
| 5 | create_by | int | 10 | 0 | Y | N | NULL | |
| 6 | create_date | datetime | 19 | 0 | Y | N | NULL | |
| 7 | update_by | int | 10 | 0 | Y | N | NULL | |
| 8 | update_date | datetime | 19 | 0 | Y | N | NULL | |
**表名:** <a id="question">question</a>
**说明:** 问题表
**数据列:**
| 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | id | int | 10 | 0 | N | Y | | |
| 2 | type | char | 1 | 0 | Y | N | NULL | 问题类型:1表示单选,2表示多选,3表示天空,4表示判断,5表示问答 |
| 3 | title | text | 65535 | 0 | Y | N | NULL | 题干 |
| 4 | option_a | varchar | 5120 | 0 | Y | N | NULL | A选项答案 |
| 5 | option_b | varchar | 5120 | 0 | Y | N | NULL | B选项答案 |
| 6 | option_c | varchar | 5120 | 0 | Y | N | NULL | C选项答案 |
| 7 | option_d | varchar | 5120 | 0 | Y | N | NULL | D选项答案 |
| 8 | answer | text | 65535 | 0 | Y | N | NULL | 答案 |
| 9 | analyse | text | 65535 | 0 | Y | N | NULL | 解析 |
| 10 | score | decimal | 11 | 0 | Y | N | NULL | 该题的分数 |
| 11 | create_by | int | 10 | 0 | Y | N | NULL | |
| 12 | create_date | datetime | 19 | 0 | Y | N | NULL | |
| 13 | update_by | int | 10 | 0 | Y | N | NULL | |
| 14 | update_date | datetime | 19 | 0 | Y | N | NULL | |
**表名:** <a id="sys_log">sys_log</a>
**说明:** 系统日志
**数据列:**
| 序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| 1 | id | int | 10 | 0 | N | Y | | 编号 |
| 2 | type | varchar | 20 | 0 |