首页 > 数据库 > 数据库开发技术 > 如何优雅地设计一套用户角色权限体系
前言
人员、组织、角色 ,权限 是每个系统的基础模块,也是一个系统的核心;如何设计一套组织、用户、角色的库表结构,决定了一个系统的可扩展性的优劣,也体现出一个设计者的业务认知能力。

那么该如何设计一套组织用户角色权限表呢?我们分以下五点来探讨。
1、用户表
2、角色表
3、权限表
4、用户角色关联表
5、角色权限关联表
6、权限与权限规则表
以上6个表就足以满足一般业务场景的权限体系设计。

表关联关系
创建人、创建时间、修改人、修改时间、状态(初始、启用、停用、删除);是业务系统相关表必备字段。
各表都必须要有一个唯一的主键字段,关于字段的数据类型建议采用UUID,而不是采用自增主键(一些业务系统中的主键ID也有用到BIGINT类型)。
1个用户对应多个角色
1个角色对应多个权限
1个权限对应多个权限规则
这里将以图片的形式展示表字段及表字段数据类型和相关数据规则
用户表

用户表
角色表

角色表
用户关联角色表

用户关联角色表
权限表

权限表
角色关联权限表

角色关联权限表
权限规则表

权限规则表
关于权限规则表这块主要是用来控制数据范围权限,如果不需要做那么细粒度的数据权限控制,则可不需要该表。
那么这个表的业务场景是这么样的呢?
一般采用动态sql及占位符的形式进行动态权限规则的注入。例如:控制数据权限(可分为四个级别:查看全部、查看某个公司、查看某个部门、查看个人等其他各类情况)。动态sql的形式则可以做到灵活的控制数据权限规则啦。
原文作者:小南瓜开发平台;如有侵权,请联系管理员删除。