多角色系统中的数据库设计问题
一个系统中有多个角色,每个角色有不同的属性。比如教师和学生,教师有职称、所属院系等属性,而学生有班级、指导教师等属性,所以把教师和学生分为了两个表。
现在系统中有一个消息系统,存放消息的表该如何设计?如果发一条消息,需要指定发件人和收件人,难道需要在消息表中定义四个外键,比如发件人1(教师)、发件人2(学生)、收件人1(教师)、收件人2(学生)。这样会不会太麻烦了,如果再多几个角色该怎么办?
想到一种方法,建一个用户基础信息表,放几个角色共有的属性,然后对应每一个角色再建一个表。在用户基础信息表中建立外键,连接到每一个角色对应的表。不过这样,如果角色多的话,用户基础信息表中的外键就比较多。还有就是查询一个用户信息的时候,需要连接的表的数量多,比如要查一个学生信息,要连接用户基础信息表、学生表、班级表等。不知道这样做合适吗。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
“用户” “拥有” “学生角色”
这里外键放在学生角色表里合理的多,这样不存在角色增加以后基础信息表的外键字段越来越多的问题
3个表足以
@暗雨西喧 三个表确实够了
确少角色权限信息,补充下
Role表,加个字段rules(里面存放rule_id:1,2,3,4...)
Rule表,rule_id