# school_resource_sharing 表文档 ## 表概述 **表名**: school_resource_sharing **功能**: 资源共享管理表,用于管理教育资源在用户、角色和校区之间的共享权限和访问控制 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references 共享记录编号 resource_id int NULL NO NULL select,insert,update,references 资源ID user_id int NULL YES NULL select,insert,update,references 用户ID(可为空) role_id int NULL YES NULL select,insert,update,references 角色ID(可为空) shared_by int NULL NO 0 select,insert,update,references 共享人ID shared_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 共享时间 campus_id int NULL YES NULL select,insert,update,references 所属校区 ``` ## 功能用途 ### 主要功能 - **资源共享管理**: 管理教育资源在不同用户和角色之间的共享 - **权限控制**: 控制资源的访问权限和使用范围 - **用户共享**: 支持向特定用户共享资源的功能 - **角色共享**: 支持向特定角色批量共享资源 - **校区共享**: 管理资源在不同校区之间的共享 - **共享追踪**: 记录资源共享的操作人和时间 - **访问控制**: 实现细粒度的资源访问控制 - **共享历史**: 维护资源共享的历史记录 - **权限继承**: 支持基于角色的权限继承机制 ### 业务场景 - **教学资源共享**: 教师之间共享课件、教案等教学资源 - **课程资源共享**: 不同课程之间共享通用的教学材料 - **校区资源共享**: 总部向各分校区共享标准化教学资源 - **管理资源共享**: 管理人员共享制度文件、表格模板等 - **学员资源共享**: 向学员开放特定的学习资源和材料 - **部门资源共享**: 不同部门之间共享工作资源和文档 - **临时资源共享**: 为特定项目或活动临时共享资源 - **批量资源共享**: 基于角色批量共享多个资源 - **权限回收**: 取消或修改已共享资源的访问权限 ## 关联关系 ### 主要关联表 - `school_resources`: 资源表(被共享的资源信息) - `school_sys_user`: 系统用户表(共享目标用户) - `school_sys_role`: 系统角色表(共享目标角色) - `school_personnel`: 人员表(共享操作人员) - `school_campus`: 校区表(资源所属校区) - `school_member`: 会员表(学员用户关联) - `school_course`: 课程表(课程相关资源) - `school_class`: 班级表(班级资源共享) ### 关联说明 - **资源关联**: resource_id关联到具体的资源记录 - **用户关联**: user_id关联到接收共享的用户 - **角色关联**: role_id关联到接收共享的角色 - **操作人关联**: shared_by关联到执行共享操作的人员 - **校区关联**: campus_id限定资源共享的校区范围 - **时间关联**: shared_at记录资源共享的具体时间 - **权限关联**: 通过用户和角色实现灵活的权限控制 ## 索引建议 - **主键索引**: id(已存在) - **外键索引**: - resource_id(资源查询) - user_id(用户查询) - role_id(角色查询) - shared_by(操作人查询) - campus_id(校区查询) - **时间索引**: shared_at(共享时间查询) - **复合索引**: - (resource_id, user_id)(资源用户查询优化) - (resource_id, role_id)(资源角色查询优化) - (user_id, campus_id)(用户校区查询) - (role_id, campus_id)(角色校区查询) - (shared_by, shared_at)(操作人时间查询) - (campus_id, shared_at)(校区时间查询) ## 注意事项 - **权限验证**: 共享操作前需要验证操作人的权限 - **重复共享**: 避免向同一用户或角色重复共享相同资源 - **权限冲突**: 处理用户权限和角色权限的冲突情况 - **校区限制**: 确保资源共享符合校区管理规则 - **数据一致性**: 保证共享记录与实际权限的一致性 - **权限回收**: 提供便捷的权限回收和修改机制 - **审计追踪**: 详细记录所有共享操作,支持审计 - **性能优化**: 大量共享记录时需要优化查询性能 - **安全控制**: 防止未授权的资源共享操作 - **批量操作**: 支持批量共享和批量回收权限 - **通知机制**: 资源共享时及时通知相关用户 - **有效期管理**: 考虑实现资源共享的有效期控制 - **继承关系**: 处理角色权限的继承和传递 - **监控告警**: 监控异常的共享行为和权限变更 - **数据备份**: 重要的权限数据需要定期备份