智慧教务系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

4.8 KiB

role_menu_permissions 表文档

表概述

表名: role_menu_permissions
功能: 角色菜单权限关联表,用于管理系统中角色与菜单之间的权限关联关系,实现基于角色的访问控制(RBAC),支持细粒度的菜单权限管理和动态权限分配,为系统安全和权限控制提供核心数据支持

字段说明

Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
id	int	NULL	NO	PRI	NULL	auto_increment	select,insert,update,references	
role_id	int	NULL	NO	MUL	NULL		select,insert,update,references	角色ID
menu_id	int	NULL	NO	MUL	NULL		select,insert,update,references	菜单ID
is_enabled	tinyint(1)	NULL	YES		1		select,insert,update,references	是否启用
created_at	timestamp	NULL	YES		CURRENT_TIMESTAMP	DEFAULT_GENERATED	select,insert,update,references	
updated_at	timestamp	NULL	YES		CURRENT_TIMESTAMP	DEFAULT_GENERATED on update CURRENT_TIMESTAMP	select,insert,update,references	

功能用途

主要功能

  • 角色菜单权限关联: 建立角色与菜单之间的权限关联关系
  • 权限控制: 控制不同角色对系统菜单的访问权限
  • 权限启用管理: 通过is_enabled字段控制权限的启用和禁用
  • 细粒度权限: 实现菜单级别的精细化权限控制
  • 权限继承: 支持角色权限的继承和覆盖机制
  • 动态权限: 支持运行时动态调整角色菜单权限
  • 权限审计: 记录权限分配的时间和变更历史
  • 批量权限: 支持批量分配和回收角色权限
  • 权限模板: 为角色权限分配提供模板支持

业务场景

  • 权限分配: 为新创建的角色分配菜单访问权限
  • 权限调整: 根据业务需要调整角色的菜单权限
  • 权限回收: 回收离职人员或角色变更的菜单权限
  • 权限审核: 定期审核和清理不必要的权限分配
  • 功能上线: 新功能菜单上线时的权限分配
  • 权限继承: 角色层级变化时的权限继承处理
  • 临时权限: 临时授予特定角色某些菜单权限
  • 权限模板: 基于角色模板快速分配权限
  • 合规检查: 满足权限管理的合规性要求

关联关系

主要关联表

  • school_sys_role: 系统角色表 (role_id外键关联)
  • school_sys_menu: 系统菜单表 (menu_id外键关联)
  • school_personnel: 人员信息表 (通过角色关联用户)
  • sys_log: 系统日志表 (权限变更日志)
  • school_sys_config: 系统配置表 (权限相关配置)
  • school_campus: 校区信息表 (数据权限范围)

关联说明

  • 角色关联: role_id关联school_sys_role表,确定权限归属角色
  • 菜单关联: menu_id关联school_sys_menu表,确定可访问的菜单
  • 用户关联: 通过角色间接关联用户,实现用户菜单权限控制
  • 日志关联: 权限变更操作记录到系统日志中
  • 配置关联: 权限相关的系统配置参数
  • 数据权限: 结合校区等信息实现数据级权限控制
  • 层级关联: 支持菜单层级权限的继承和控制

索引建议

  • 主键索引: id (已存在)
  • 外键索引:
    • role_id (角色权限查询)
    • menu_id (菜单权限查询)
  • 业务索引:
    • is_enabled (启用状态查询)
  • 复合索引:
    • (role_id, menu_id) (角色菜单权限唯一性)
    • (role_id, is_enabled) (角色启用权限查询)
    • (menu_id, is_enabled) (菜单启用权限查询)
    • (role_id, menu_id, is_enabled) (完整权限查询)
  • 时间索引:
    • created_at (创建时间查询)
    • updated_at (更新时间查询)

注意事项

  • 权限唯一性: (role_id, menu_id)组合应保证唯一性,避免重复权限记录
  • 外键完整性: role_id和menu_id必须在对应的表中存在
  • 权限一致性: 权限变更时需要同步更新相关缓存和会话
  • 启用状态: is_enabled字段变更需要实时生效到用户权限
  • 权限继承: 角色层级变化时需要重新计算权限继承关系
  • 批量操作: 批量权限分配时需要保证事务一致性
  • 权限验证: 菜单访问时需要验证对应的权限记录
  • 软删除: 建议使用软删除而非物理删除权限记录
  • 权限缓存: 频繁访问的权限信息建议使用缓存机制
  • 审计日志: 权限变更操作需要记录详细的审计日志
  • 默认权限: 新角色创建时需要分配默认的基础权限
  • 权限回收: 角色删除时需要同步清理相关权限记录
  • 数据完整性: 删除角色或菜单时需要检查权限依赖关系
  • 权限模板: 建议建立权限模板机制简化权限分配
  • 最小权限: 遵循最小权限原则,只分配必要的菜单权限
  • 权限监控: 建立权限使用监控,及时发现异常权限访问
  • 时效性: 权限变更需要及时生效,避免权限延迟