# school_departments 表文档 ## 表概述 **表名**: school_departments **功能**: 部门管理表,负责管理教务系统中的组织架构和部门层级关系,支持多级部门结构和部门路径管理 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references 部门编号 department_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 部门名称 parent_department_id int NULL YES NULL select,insert,update,references 上级部门ID path varchar(255) utf8mb4_general_ci YES NULL 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 修改时间 deleted_at int NULL NO 0 select,insert,update,references ``` ## 功能用途 ### 主要功能 1. **部门层级管理**: 管理多级部门组织架构,支持无限级部门嵌套 2. **部门信息维护**: 维护部门名称、上级部门等基本信息 3. **部门路径管理**: 通过path字段记录部门的完整层级路径 4. **组织架构展示**: 为系统提供完整的组织架构数据 5. **权限范围控制**: 为权限管理提供部门范围控制 6. **人员归属管理**: 为人员分配提供部门归属依据 7. **逻辑删除支持**: 支持部门的逻辑删除和恢复 8. **时间追踪**: 记录部门的创建和修改时间 ### 业务场景 1. **组织架构搭建**: 初始化和维护学校的组织架构 2. **部门人员管理**: 为人员分配和管理提供部门依据 3. **权限分级管理**: 基于部门层级进行权限分配和控制 4. **数据权限控制**: 控制用户只能查看本部门及下级部门数据 5. **报表统计分析**: 按部门维度进行各类业务数据统计 6. **审批流程设计**: 为审批流程提供部门层级依据 7. **成本核算管理**: 按部门进行成本分摊和核算 8. **绩效考核管理**: 按部门进行绩效考核和评估 9. **组织架构调整**: 支持部门的新增、修改、删除等调整操作 ## 关联关系 ### 主要关联表 1. **school_personnel**: 人员表(部门人员关联) 2. **school_campus**: 校区表(校区部门关联) 3. **school_sys_role**: 角色表(部门角色权限关联) 4. **school_approval_config**: 审批配置表(部门审批流程关联) 5. **school_performance_records**: 绩效记录表(部门绩效关联) 6. **school_salary**: 薪资表(部门薪资管理关联) 7. **school_course**: 课程表(部门课程管理关联) ### 关联说明 1. **自关联**: parent_department_id与本表id形成父子部门关系 2. **人员关联**: 人员表通过部门ID关联,确定员工所属部门 3. **权限关联**: 与角色权限系统关联,实现基于部门的权限控制 4. **业务关联**: 各业务表通过部门关联实现数据权限控制 5. **路径关联**: path字段存储完整部门路径,便于层级查询 6. **审批关联**: 审批流程中的部门审批人配置 7. **统计关联**: 各类统计报表按部门维度进行数据汇总 ## 索引建议 1. **主键索引**: id(已存在) 2. **外键索引**: parent_department_id(父部门查询) 3. **普通索引**: - department_name(部门名称查询) - path(路径查询) - deleted_at(逻辑删除查询) 4. **复合索引**: - (parent_department_id, deleted_at)(父部门有效子部门查询) - (path, deleted_at)(路径有效部门查询) 5. **时间索引**: - created_at(创建时间查询) - updated_at(更新时间查询) ## 注意事项 1. **层级完整性**: 删除部门时需要检查是否有子部门 2. **路径一致性**: path字段需要与实际层级关系保持一致 3. **循环引用**: 防止部门层级出现循环引用 4. **逻辑删除**: 使用deleted_at字段进行逻辑删除,0表示未删除 5. **人员迁移**: 删除部门前需要处理部门内人员的归属 6. **权限更新**: 部门变更时需要同步更新相关权限配置 7. **路径更新**: 修改部门层级时需要更新所有子部门的path 8. **名称唯一性**: 同级部门名称应保持唯一 9. **数据一致性**: 部门变更时需要同步更新相关业务数据 10. **性能优化**: 深层级查询时需要考虑性能优化 11. **备份策略**: 组织架构数据需要定期备份 12. **审计要求**: 部门变更操作需要记录详细日志 13. **并发控制**: 多用户同时修改部门时需要并发控制 14. **历史追踪**: 重要的部门变更需要保留历史记录