ITPub博客

首页 > 数据库 > 数据库开发技术 > 如何优雅地设计一套用户角色权限体系

如何优雅地设计一套用户角色权限体系

原创 数据库开发技术 作者:小南瓜开发平台 时间:2023-02-11 00:01:00 0 删除 编辑

前言

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

那么该如何设计一套组织用户角色权限表呢?我们分以下五点来探讨。

一、需要哪些表?

1、用户表

2、角色表

3、权限表

4、用户角色关联表

5、角色权限关联表

6、权限与权限规则表

以上6个表就足以满足一般业务场景的权限体系设计。

表关联关系

二、五大基本字段

创建人、创建时间、修改人、修改时间、状态(初始、启用、停用、删除);是业务系统相关表必备字段。

三、各表字段的主键如何设计

各表都必须要有一个唯一的主键字段,关于字段的数据类型建议采用UUID,而不是采用自增主键(一些业务系统中的主键ID也有用到BIGINT类型)。


四、表之间的映射关系是怎么样的

1个用户对应多个角色

1个角色对应多个权限

1个权限对应多个权限规则

五、各表字段应该如何设计

这里将以图片的形式展示表字段及表字段数据类型和相关数据规则

用户表

用户表


角色表

角色表


用户关联角色表

用户关联角色表

权限表

权限表

角色关联权限表

角色关联权限表

权限规则表

权限规则表

关于权限规则表这块主要是用来控制数据范围权限,如果不需要做那么细粒度的数据权限控制,则可不需要该表。

那么这个表的业务场景是这么样的呢?

一般采用动态sql及占位符的形式进行动态权限规则的注入。例如:控制数据权限(可分为四个级别:查看全部、查看某个公司、查看某个部门、查看个人等其他各类情况)。动态sql的形式则可以做到灵活的控制数据权限规则啦。


原文作者:小南瓜开发平台;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-08-21

  • 博文量
    209
  • 访问量
    89524