# 学生管理系统
## 项目说明
本系统主要用于管理学生成绩/课程,面向用户对象为老师、学生、教务员。
项目利用MySQL、Java Spring框架, 前端为web, 后端为servlet
![image-20221216123554273 ](README.assets/image-20221216123554273.png )
系统功能:
- 对于学生:能够查询学生课程/成绩,以及对应老师的信息
- 对于老师:能够查看和修改老师所教的学生、相关课程、学分等
- 对于管理员:查看和修改学生/老师的账户密码、课程学分学时
查询功能:能够利用姓名/账号进行查询
## 数据库设计
优化前:
![image-20221216103227550 ](README.assets/image-20221216103227550.png )
优化后:
![image-20221216103211897 ](README.assets/image-20221216103211897.png )
Views视图为
StudentManager用于存储学生端信息
```sql
create view StudentManager as select student.id,student.name,course.subject,course.Credit from student,course ,take where student.id = take.student_id and course.course_id = take.course_id
```
![image-20221216110809185 ](README.assets/image-20221216110809185.png )
TeacherManager用于存储老师端信息
```sql
create view TeacherManager as select student.id, name as student_name ,subject as subject_name,Period,Credit from student,course where course.course_id = student.idTeacherManager
```
![image-20221216110731204 ](README.assets/image-20221216110731204.png )
后期优化考虑:
- 使用**materialized view**来存储大量的用户界面信息,已达到快速响应的信息传输,利用**Trigger**触发更新**materialized view**关联表中剩余的**students**表/**teacher**表/**user**表的信息
项目运行截图:
![image-20221216121630072 ](README.assets/image-20221216121630072.png )
管理员界面
![image-20221216121636780 ](README.assets/image-20221216121636780.png )
查询功能
![image-20221216121642434 ](README.assets/image-20221216121642434.png )
老师界面
![image-20221216122433281 ](README.assets/image-20221216122433281.png )
学生界面![image-20221216123240695](README.assets/image-20221216123240695.png)