这是一个系统的权限模块
1.要求一个用户可以管理多个部门
2.权限根据权限组来分配
以下数据库设计是否合理,是否有更好的方法,请大侠指点。
另外,此种设计方法使得一个用户在不同的部门下有相同的权限,如果要求一个用户在不同的部门下有不同的权限,如何修改设计比较好?
Operator 用户基本信息表
Role 权限表
RoleGroup 权限组表
RoleGroupDetail 权限组详细权限表
Department 部门表
DepartmentOperator 部门用户关系表
表设计图:
------解决方案--------------------
权限与角色关联
用户与角色关联
用户与部门关联
部门与基本角色关联
------解决方案--------------------
1、假设用户帐号和员工连在一起不用区分时,用户帐号隶属于部门做法是合理的
2、使得一个用户在不同的部门下有相同的权限,此做法符合大多软件设计要求,应是合理的
3、如果要求一个用户在不同的部门下有不同的权限,此时做法可以这样考虑
用户 -- 角色 -- 角色权限
X
用户 -- 部门 -- 部门权限
取两者交集即可,但这种做法应用意义不大,除非让用户登录软件时同时选一下现在要登到哪个部门!!!
如是这样,也完全没有必要!!!
------解决方案--------------------
权限与角色关联
用户与角色关联
用户与部门关联
权限与部门对应
这个关系,目前在使用中。权限管理清晰,方便
用户和角色模板表对应
------解决方案--------------------
设计存在问题 ,一个用户属于一个权限组吗?这个很明显不合里,用户(operate)应该关联角色(role) 而不是权限组(roleGroup); 这样用户的权限才可以灵活