智慧教务系统
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.
 
 
 
 
 
 

5.5 KiB

school_sys_role 表文档

表概述

表名: school_sys_role
功能: 系统角色管理表,负责管理教务系统中的用户角色定义、权限分配、角色层级、数据权限等访问控制功能

字段说明

Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
role_id	int unsigned	NULL	NO	PRI	NULL	auto_increment	select,insert,update,references	角色id
role_name	varchar(255)	utf8mb4_general_ci	NO				select,insert,update,references	角色名称
role_key	varchar(255)	utf8mb4_general_ci	NO		NULL		select,insert,update,references	角色英文标识|market=销售,teacher=老师,manager=经理
rules	text	utf8mb4_general_ci	YES		NULL		select,insert,update,references	角色权限(menus_id)
mobile_rules	text	utf8mb4_general_ci	YES		NULL		select,insert,update,references	移动端权限规则JSON
addon_keys	text	utf8mb4_general_ci	YES		NULL		select,insert,update,references	角色应用权限(应用key)
status	tinyint unsigned	NULL	NO		1		select,insert,update,references	状态
create_time	int	NULL	NO		0		select,insert,update,references	添加时间
update_time	int	NULL	NO		0		select,insert,update,references	最后修改时间
dept_id	int	NULL	YES		NULL		select,insert,update,references	部门id
is_supervisor	tinyint	NULL	YES		0		select,insert,update,references	是否为主管:1是 0 否
campus_id	int	NULL	YES		NULL		select,insert,update,references	所属校区

功能用途

主要功能

  • 角色定义管理: 定义系统中的各种用户角色和职责
  • 权限分配: 为角色分配相应的功能权限和数据权限
  • 角色层级: 支持角色的层级关系和权限继承
  • 数据权限控制: 控制角色可访问的数据范围
  • 角色状态管理: 管理角色的启用和禁用状态
  • 角色排序: 控制角色的显示顺序和优先级
  • 角色描述: 提供角色的详细说明和备注
  • 权限模板: 作为权限分配的模板和基础
  • 访问控制: 实现基于角色的访问控制(RBAC)

业务场景

  • 系统初始化: 创建系统默认角色(超级管理员、管理员等)
  • 用户注册: 为新用户分配默认角色
  • 权限管理: 管理员为角色分配和调整权限
  • 组织架构: 根据组织结构创建对应角色
  • 业务流程: 不同角色在业务流程中承担不同职责
  • 数据安全: 通过角色控制敏感数据的访问
  • 功能授权: 控制用户可使用的系统功能
  • 审计合规: 角色权限变更的审计和合规管理
  • 多租户: 支持多校区的角色权限隔离

关联关系

主要关联表

  • school_personnel: 人员表 (用户角色关联)
  • school_sys_menu: 系统菜单表 (角色菜单权限)
  • role_menu_permissions: 角色菜单权限表 (权限分配)
  • school_campus: 校区表 (数据权限范围)
  • school_department: 部门表 (部门角色关联)
  • school_sys_config: 系统配置表 (角色配置)
  • sys_log: 系统日志表 (角色操作日志)
  • school_approval_process: 审批流程表 (角色审批权限)

关联说明

  • 用户关联: 人员表中的role_id字段关联此表,确定用户角色
  • 菜单关联: 通过权限表关联菜单,控制角色可访问的功能
  • 权限关联: 权限表记录角色与具体权限的对应关系
  • 数据权限: 角色可能限制在特定校区或部门的数据范围
  • 部门关联: 部门可能有默认角色或角色层级关系
  • 配置关联: 系统配置可能影响角色的权限和行为
  • 日志关联: 角色的创建、修改、删除操作记录在日志中
  • 审批关联: 角色决定用户在审批流程中的权限和职责

索引建议

  • 主键索引: role_id (已存在)
  • 唯一索引:
    • role_key (角色标识唯一)
  • 外键索引:
    • parent_id (父角色查询)
  • 业务索引:
    • status (状态查询)
    • sort (排序查询)
    • role_name (角色名称查询)
  • 复合索引:
    • (status, sort) (有效角色排序查询)
    • (parent_id, status) (有效子角色查询)
    • (role_key, status) (角色标识状态查询)
  • 时间索引:
    • create_time (创建时间查询)
    • update_time (更新时间查询)

注意事项

  • 角色标识唯一性: role_key必须唯一,避免角色标识冲突
  • 角色名称唯一性: role_name建议唯一,避免角色名称混淆
  • 层级关系: parent_id不能形成循环引用,避免无限递归
  • 权限继承: 子角色可能继承父角色的部分权限
  • 数据完整性: 删除角色前需要检查是否有用户关联
  • 权限同步: 角色权限变更时需要同步更新用户权限
  • 状态控制: 禁用角色时需要考虑关联用户的处理
  • 排序逻辑: sort字段用于控制角色的显示顺序
  • 权限最小化: 遵循最小权限原则,避免权限过度分配
  • 角色粒度: 角色设计要平衡粒度,避免过细或过粗
  • 默认角色: 系统应该有默认角色,新用户自动分配
  • 超级管理员: 超级管理员角色需要特殊保护,不能删除
  • 权限验证: 所有操作都需要验证用户角色权限
  • 缓存策略: 角色权限信息适合缓存,提高性能
  • 审计日志: 角色权限变更需要详细的审计日志
  • 多租户隔离: 不同校区的角色权限需要隔离
  • 权限模板: 可以基于角色创建权限分配模板
  • 临时权限: 考虑是否需要支持临时权限授权
  • 权限回收: 用户离职或角色变更时及时回收权限