用户角色登录的数据库设计方案选择?
一个Java springboot程序,需要用户根据角色登录,用户角色有管理员、学生、教师三种
目前数据库表有如下两种构建方式:
- 直接整一个用户表然后加一个权限字段
- 除用户表外,对于角色分成老师学生管理员三个表,将其与用户表进行关联
从程序的健壮性及后期维护成本来说,请问哪种方案好一点
回复
1个回答

test
2024-06-21
直接整一个用户表然后有一个字段是ROLE_ID,它就是角色表的主键,不需要把多种角色拆成多张表,一张角色表就可以了,如果要继续细分到权限,那就角色表里面有一个字段RIGHT_ID关联到权限表。将多个角色拆分成多张表,那么每张表就有冗余的相同字段了,每当你加一个新角色,要再建一张表,再写增删改查,你觉得角色合到一张表增加了耦合度,但你在业务上实际上需要针对不同的角色表来做处理,这样的复杂度和耦合度我觉得是更高的。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容