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

7 篇文章 1 订阅
7 篇文章 1 订阅

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

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

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

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

主要包括上面几个表,由于是用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插入一条没有分数数据,这样子,就拥有了学生、课程、老师的关系。等到老师录入成绩时,找到这条数据,更新分数就可以了。

 

 

 

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值