角色权限表
引用文件
目录
简介
本文件聚焦于角色权限体系的表结构与权限控制机制,详细说明角色表(system_role)、菜单表(system_menu)以及角色菜单关联表(system_role_menu)的核心字段、数据类型、约束条件与业务含义;解释角色类型与数据范围字段设计;阐述菜单类型与权限标识字段;并给出角色菜单关联表的设计思路与权限控制流程。最后提供角色权限体系的完整结构说明(含父子角色关系与权限继承规则),以及典型场景与数据示例。
项目结构
围绕角色权限的核心表位于系统模块的数据库脚本中,同时在系统业务模块的测试资源中提供了标准建表SQL,便于本地开发与测试环境快速初始化。
图表来源
章节来源
核心组件
- 角色表(system_role)
- 角色ID、角色名称、角色权限字符串(code)、显示顺序、数据范围、数据范围部门集合、角色状态、角色类型、备注、租户编号等字段
- 菜单表(system_menu)
- 菜单ID、菜单名称、权限标识(permission)、菜单类型、排序、父级ID、路由地址、图标、组件路径、组件名、状态、可见性、缓存策略、始终显示、租户编号等字段
- 角色菜单关联表(system_role_menu)
- 关联ID、角色ID、菜单ID、租户编号等字段
章节来源
架构总览
角色权限体系通过“角色-菜单”多对多关联实现权限控制,结合数据范围(按部门/本人等)实现数据级权限。前端根据菜单树展示可访问的菜单项,后端通过权限标识(permission)进行接口级鉴权。
图表来源
详细组件分析
角色表(system_role)字段详解
- 角色ID(id)
- 类型:bigint(主键)
- 说明:自增主键,唯一标识角色
- 角色名称(name)
- 类型:varchar(30)
- 说明:角色显示名称
- 角色权限字符串(code)
- 类型:varchar(100)
- 说明 :角色的权限标识字符串,用于接口或业务逻辑判断
- 显示顺序(sort)
- 类型:int
- 说明:角色在界面中的排序权重
- 数据范围(data_scope)
- 类型:tinyint
- 取值:参考数据范围枚举(全部、指定部门、本部门、本部门及以下、仅本人)
- 说明:决定角色的数据访问范围
- 数据范围部门集合(data_scope_dept_ids)
- 类型:varchar(500)
- 说明:当数据范围为“指定部门”时,存储部门ID集合
- 角色状态(status)
- 类型:tinyint
- 取值:0 正常;1 停用
- 说明:控制角色是否生效
- 角色类型(type)
- 类型:tinyint
- 取值:参考角色类型枚举(系统内置、自定义)
- 说明:区分内置角色与自定义角色
- 备注(remark)
- 类型:varchar(500)
- 说明:角色描述信息
- 租户编号(tenant_id)
- 类型:bigint
- 默认:0
- 说明:多租户隔离标识
章节来源
菜单表(system_menu)字段详解
- 菜单ID(id)
- 类型:bigint(主键)
- 说明:自增主键,唯一标识菜单
- 菜单名称(name)
- 类型:varchar(50)
- 说明:菜单显示名称
- 权限标识(permission)
- 类型:varchar(100)
- 说明:接口级权限标识,如 system:user:list
- 菜单类型(type)
- 类型:tinyint
- 说明:菜单分类(目录、菜单、按钮等)
- 显示顺序(sort)
- 类型:int
- 默认:0
- 父级ID(parent_id)
- 类型:bigint
- 默认:0
- 路由地址(path)
- 类型:varchar(200)
- 说明:前端路由路径
- 图标(icon)
- 类型:varchar(100)
- 默认:'#'
- 组件路径(component)
- 类型:varchar(255)
- 说明:前端组件路径
- 组件名(component_name)