若依系统中的角色设计
1
问题起源
最近发现若依系统的用户、角色以及关联的菜单使用非常不错,想也拷贝一份在自己的系统中,因此学习一番。
角色表设计
若依系统中的角色表涉及role字段相关,包括主表sys_role, 以及三个关联表:sys_role_dept,sys_role_menu,sys_user_role,分别表示角色与部门的关联,角色与菜单的关联,角色与用户的关联。
sys_role
sys_role是角色主表,如图所示:
比较有特色的设计字段包括:
role_key: 角色权限字符串;
data_scope:数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
menu_check_strictly: 菜单树是否关联显示
dept_check_strictly:部门树选择项是否关联显示
创建与编辑角色的页面如下:
sys_role_dept
该表为角色与部门的关联表,是若依中存在的一个被称为“数据权限”的东西,给角色分配数据权限的页面如下:
sys_role_menu
该表为角色与菜单的管理表,是创建角色时选择的菜单列表。
sys_user_role
该表为角色与用户的关联表,一个用户可以用有多个角色,一个角色也可以用多个用户,用户与角色是多对多的关系。
分配角色有以下两个操作页面,分别表示给角色分配用户,以及给用户分配角色: