# 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,以逗号分隔 - **权限继承**: 用户通过角色获得对应的菜单和功能权限 - **日志关联**: 角色变更操作会记录到用户操作日志中 - **校区关联**: 角色权限可能与特定校区的数据访问相关 ## 索引建议 ```sql -- 主键索引(自动创建) 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的用户拥有所有权限,需要严格控制 - **角色验证**: 用户登录时需要验证角色的有效性和状态 - **权限缓存**: 用户权限信息应合理缓存,提高系统性能 - **角色变更**: 角色变更后需要清除相关缓存,确保权限及时生效 - **数据一致性**: 角色删除时需要检查是否有用户仍在使用该角色 - **权限最小化**: 遵循权限最小化原则,避免过度授权 - **审计日志**: 重要的角色变更操作应记录详细的审计日志 - **并发控制**: 角色分配操作需要考虑并发安全问题 - **角色继承**: 角色权限变更时需要考虑对已分配用户的影响 - **状态同步**: 用户状态变更时需要同步更新角色分配状态 - **备份恢复**: 重要的权限配置数据应定期备份 - **安全检查**: 定期检查和审计用户的角色权限分配 - **角色清理**: 定期清理无效或过期的角色分配记录