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

school_sys_user_role 表文档

表概述

表名: school_sys_user_role
功能: 系统用户角色关联表,用于建立用户与角色的多对多关联关系,实现基于角色的权限管理和访问控制,支持超级管理员标识和角色组合权限

字段说明

Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
id	int	NULL	NO	PRI	NULL	auto_increment	select,insert,update,references	
uid	int	NULL	NO		0		select,insert,update,references	用户id
role_ids	varchar(255)	utf8mb4_general_ci	NO				select,insert,update,references	角色id
create_time	int	NULL	NO		0		select,insert,update,references	添加时间
is_admin	int	NULL	NO		0		select,insert,update,references	是否是超级管理员
status	int	NULL	NO		1		select,insert,update,references	状态

功能用途

主要功能

  • 用户角色绑定: 建立用户与角色的多对多关联关系
  • 权限管理: 通过角色分配实现用户权限的统一管理
  • 超级管理员标识: 通过is_admin字段标识超级管理员用户
  • 角色组合管理: 支持一个用户拥有多个角色的组合权限
  • 用户状态控制: 管理用户角色分配的启用/禁用状态
  • 权限继承: 用户通过角色继承相应的菜单和功能权限
  • 角色变更记录: 记录用户角色分配的时间信息
  • 权限隔离: 确保不同角色用户的数据和功能访问隔离
  • 批量权限管理: 支持批量分配和调整用户角色

业务场景

  • 系统用户管理: 为系统管理员、教务人员等分配相应角色
  • 权限分级管理: 校长、主管、教师等不同级别的权限管理
  • 功能模块访问: 控制用户对不同功能模块的访问权限
  • 数据权限控制: 基于角色控制用户可访问的数据范围
  • 临时权限分配: 为特定用户临时分配额外的角色权限
  • 角色权限审计: 审计和检查用户的角色权限分配情况
  • 权限回收: 用户离职或调岗时回收相应的角色权限
  • 多校区权限: 为跨校区用户分配不同校区的角色权限
  • 季节性权限: 根据业务需要临时调整用户的角色权限
  • 权限继承: 新用户根据岗位自动继承标准的角色配置

关联关系

主要关联表

  • school_sys_user: 系统用户表,通过uid字段关联
  • school_sys_role: 系统角色表,通过role_ids字段关联
  • school_sys_menu: 系统菜单表,通过角色获取菜单权限
  • school_personnel: 人员表,可能与系统用户存在关联
  • school_campus: 校区表,角色可能与特定校区相关
  • school_sys_user_log: 用户日志表,记录角色变更操作

关联说明

  • 用户关联: 通过uid字段与school_sys_user表建立一对一关系
  • 角色关联: role_ids字段存储多个角色ID,以逗号分隔
  • 权限继承: 用户通过角色获得对应的菜单和功能权限
  • 日志关联: 角色变更操作会记录到用户操作日志中
  • 校区关联: 角色权限可能与特定校区的数据访问相关

索引建议

-- 主键索引(自动创建)
PRIMARY KEY (id)

-- 用户ID索引(用于查询用户角色)
UNIQUE INDEX idx_uid (uid)

-- 状态索引(用于查询有效的用户角色)
INDEX idx_status (status)

-- 超级管理员索引(用于查询管理员)
INDEX idx_is_admin (is_admin)

-- 创建时间索引(用于按时间查询)
INDEX idx_create_time (create_time)

-- 复合索引(用于权限验证)
INDEX idx_uid_status (uid, status)

注意事项

  • 角色ID格式: role_ids字段存储格式应统一,建议使用逗号分隔的数字串
  • 超级管理员: is_admin=1的用户拥有所有权限,需要严格控制
  • 角色验证: 用户登录时需要验证角色的有效性和状态
  • 权限缓存: 用户权限信息应合理缓存,提高系统性能
  • 角色变更: 角色变更后需要清除相关缓存,确保权限及时生效
  • 数据一致性: 角色删除时需要检查是否有用户仍在使用该角色
  • 权限最小化: 遵循权限最小化原则,避免过度授权
  • 审计日志: 重要的角色变更操作应记录详细的审计日志
  • 并发控制: 角色分配操作需要考虑并发安全问题
  • 角色继承: 角色权限变更时需要考虑对已分配用户的影响
  • 状态同步: 用户状态变更时需要同步更新角色分配状态
  • 备份恢复: 重要的权限配置数据应定期备份
  • 安全检查: 定期检查和审计用户的角色权限分配
  • 角色清理: 定期清理无效或过期的角色分配记录