若依系统中的角色设计

1

问题起源

最近发现若依系统的用户、角色以及关联的菜单使用非常不错,想也拷贝一份在自己的系统中,因此学习一番。

角色表设计

若依系统中的角色表涉及role字段相关,包括主表sys_role, 以及三个关联表:sys_role_dept,sys_role_menu,sys_user_role,分别表示角色与部门的关联,角色与菜单的关联,角色与用户的关联。

sys_role

sys_role是角色主表,如图所示:

image-20220412144453030

比较有特色的设计字段包括:

role_key: 角色权限字符串;

data_scope:数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)

menu_check_strictly: 菜单树是否关联显示

dept_check_strictly:部门树选择项是否关联显示

创建与编辑角色的页面如下:

image-20220412144734553

sys_role_dept

该表为角色与部门的关联表,是若依中存在的一个被称为“数据权限”的东西,给角色分配数据权限的页面如下:

image-20220412144838441

sys_role_menu

该表为角色与菜单的管理表,是创建角色时选择的菜单列表。

image-20220412150428686

sys_user_role

该表为角色与用户的关联表,一个用户可以用有多个角色,一个角色也可以用多个用户,用户与角色是多对多的关系。

分配角色有以下两个操作页面,分别表示给角色分配用户,以及给用户分配角色:

image-20220412150609295

image-20220412150631306

页面与接口