You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.1 KiB

# 学生管理系统
2 years ago
## 项目说明
本系统主要用于管理学生成绩/课程,面向用户对象为老师、学生、教务员。
项目利用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)