springBoot+shiro+vue的学生管理系统(一、数据库的设计)

最近在用springBoot,shiro和vue做一个前后端分离的学生管理系统,在此记录一下做的过程,以及遇到的问题。

GitHub代码后端地址:https://github.com/qiuxinfa/springboot-shiro-vue-stu

GitHub代码前端地址:https://github.com/qiuxinfa/boot-shiro-vue-stu-client

这里先讲数据库的设计,直接上图:

springBoot+shiro+vue的学生管理系统(一、数据库的设计)_第1张图片

主要包括上面几个表,由于是用Navicat导出的,而表直接我并没有建立明显的外键关系,因为外键关系我是在程序中维护的。

此外,外键,我一般表示为另一个表名的结尾_id来表示,还是比较清晰的。

 

说几点:

1.因为这个系统,正常来说,只有三类角色:管理员,老师和学生,用户与角色是一对一的关系,因此,t_user_role这个表可以没有,直接在t_user表加个外键role_id即可。但是为了后续拓展和维护的方便,我还是使用了t_user_role这个表。

2.关于t_student_course这个中间表,我其实并没有用到,只是一开始设计的时候,考虑到学生和课程是多对多的关系,课程和老师也是多对多的关系,所以建了这个表。没有使用表t_student_course的原因是:一门课程可以有多个任课老师,仅仅根据course_id并不能定位到课程及其任课老师,因为任课老师有多个。但是,如果任课老师只有一个的话,这个表是可以用到的。

所以我的解决办法是直接使用t_grade表:学生选了一门课程,就往成绩表t_grade插入一条没有分数数据,这样子,就拥有了学生、课程、老师的关系。等到老师录入成绩时,找到这条数据,更新分数就可以了。

 

 

 

你可能感兴趣的:(Java,springboot,shiro,springboot,vue,shiro,学生管理系统)