# school_approval_history 表文档 ## 表概述 **表名**: school_approval_history **功能**: 审批历史记录表,用于记录审批流程中每个节点的操作历史和结果,包括审批人操作、审批意见、操作时间等,支持审批追溯、合规审计和流程优化,为学校提供完整的审批操作审计轨迹 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references 历史记录ID process_id int NULL NO MUL NULL select,insert,update,references 流程ID participant_id int NULL NO MUL NULL select,insert,update,references 审批人ID sequence int NULL NO NULL select,insert,update,references 审批顺序 action enum('approve','reject','forward','cancel') utf8mb4_0900_ai_ci NO NULL select,insert,update,references 操作类型 status enum('approved','rejected','forwarded','cancelled') utf8mb4_0900_ai_ci NO NULL select,insert,update,references 操作结果 remarks text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 审批意见 created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 操作时间 ``` ## 功能用途 ### 主要功能 - **审批历史记录**: 记录审批流程中每个节点的操作历史和结果 - **操作类型管理**: 支持批准、拒绝、转发、取消四种操作类型 - **状态结果跟踪**: 记录每次操作的具体结果状态 - **审批顺序管理**: 记录审批人在流程中的执行顺序 - **审批意见存储**: 存储审批人的详细审批意见和备注 - **时间追踪**: 记录每次审批操作的具体时间 - **审计追踪**: 提供完整的审批操作审计轨迹 - **流程关联**: 关联具体的审批流程和参与人 - **历史查询**: 支持审批历史的查询和统计 ### 业务场景 - **审批记录**: 记录每次审批操作的详细信息 - **审批追溯**: 追溯审批流程的完整历史轨迹 - **审批统计**: 统计审批人的审批效率和结果 - **审批分析**: 分析审批流程的瓶颈和优化点 - **合规审计**: 提供审批操作的合规性审计 - **争议处理**: 处理审批争议时提供历史依据 - **流程优化**: 基于历史数据优化审批流程 - **绩效考核**: 评估审批人员的工作绩效 - **报表生成**: 生成审批相关的统计报表 ## 关联关系 ### 主要关联表 - `school_approval_process`: 审批流程表 (process_id外键关联) - `school_approval_participants`: 审批参与人表 (participant_id外键关联) - `school_personnel`: 人员信息表 (审批人信息关联) - `school_approval_config`: 审批配置表 (流程配置关联) - `school_approval_config_node`: 审批节点配置表 (节点配置关联) - `sys_log`: 系统日志表 (操作日志关联) ### 关联说明 - **流程关联**: process_id关联school_approval_process表,确定历史记录所属流程 - **参与人关联**: participant_id关联school_approval_participants表,确定操作的审批人 - **人员关联**: 通过participant_id间接关联school_personnel表获取审批人详细信息 - **配置关联**: 通过流程关联审批配置和节点配置信息 - **日志关联**: 审批操作同时记录到系统日志中 - **顺序关联**: sequence字段确定审批操作在流程中的执行顺序 - **操作关联**: action和status字段关联,记录操作类型和结果 ## 索引建议 - **主键索引**: id (已存在) - **外键索引**: - process_id (流程历史查询) - participant_id (审批人历史查询) - **业务索引**: - action (操作类型查询) - status (操作结果查询) - sequence (审批顺序查询) - **复合索引**: - (process_id, sequence) (流程顺序查询) - (participant_id, created_at) (审批人时间查询) - (process_id, action, status) (流程操作结果查询) - (action, status, created_at) (操作结果时间查询) - **时间索引**: - created_at (操作时间查询) ## 注意事项 - **操作类型**: action字段限定为approve、reject、forward、cancel四种类型 - **状态结果**: status字段限定为approved、rejected、forwarded、cancelled四种状态 - **外键完整性**: process_id和participant_id必须在对应表中存在 - **顺序唯一性**: 同一流程中的sequence应该是唯一的 - **操作一致性**: action和status应该保持逻辑一致性 - **只增不删**: 历史记录表应该只允许插入,不允许删除或修改 - **时间精度**: created_at使用timestamp类型,确保时间精度 - **审批意见**: remarks字段可以为空,但重要操作建议填写 - **数据完整性**: 每次审批操作都必须记录完整的历史信息 - **并发控制**: 防止同一审批人同时进行多次操作 - **权限验证**: 确保只有授权的审批人才能进行操作 - **审计要求**: 所有操作都必须有完整的审计轨迹 - **数据备份**: 重要的审批历史数据需要定期备份 - **性能优化**: 大量历史数据查询时需要考虑分页和索引优化 - **监控告警**: 建立异常审批操作的监控机制 - **数据归档**: 建立历史数据的归档策略 - **查询优化**: 复杂的历史查询需要优化SQL性能