# school_approval_config_node 表文档 ## 表概述 **表名**: school_approval_config_node **功能**: 审批配置节点表,用于定义和管理审批流程中的具体节点配置,包括审批人类型(用户/角色/部门)、审批方式(或签/会签)、节点顺序等,支持灵活的审批流程设计和多维度审批人配置,为学校提供完整的审批流程节点管理和配置功能 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references 节点ID config_id int NULL NO MUL NULL select,insert,update,references 配置ID node_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 节点名称 approver_type enum('user','role','department') utf8mb4_general_ci NO NULL select,insert,update,references 审批人类型: user-指定用户, role-指定角色, department-指定部门 approver_ids varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 审批人ID集合,逗号分隔 sign_type enum('or_sign','and_sign') utf8mb4_general_ci NO or_sign select,insert,update,references 审批类型: or_sign-或签(一人通过即可), and_sign-会签(需全部通过) sequence int NULL NO 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 修改时间 ``` ## 功能用途 ### 主要功能 1. **审批节点配置**: 定义审批流程中的具体节点信息和配置 2. **审批人管理**: 配置每个节点的审批人类型和具体审批人员 3. **审批类型控制**: 支持或签(一人通过即可)和会签(需全部通过)两种审批模式 4. **节点顺序管理**: 通过sequence字段控制审批节点的执行顺序 5. **多维度审批人**: 支持指定用户、角色、部门三种审批人类型 6. **审批人集合**: 支持一个节点配置多个审批人,用逗号分隔存储 7. **节点命名**: 提供节点名称字段,便于识别和管理 8. **配置关联**: 与审批配置表关联,形成完整的审批流程 9. **时间追踪**: 记录节点配置的创建和修改时间 ### 业务场景 1. **流程设计**: 设计多级审批流程,配置每个审批节点 2. **权限分配**: 为不同审批节点分配相应的审批人员或角色 3. **并行审批**: 配置会签节点,需要多人同时审批通过 4. **串行审批**: 配置或签节点,任意一人审批即可通过 5. **部门审批**: 配置部门级别的审批,由部门负责人审批 6. **角色审批**: 配置基于角色的审批,如财务审批、人事审批 7. **用户审批**: 配置指定用户的审批,如总经理审批 8. **流程优化**: 根据业务需要调整审批节点和审批人配置 9. **审批监控**: 通过节点配置监控审批流程的执行情况 ## 关联关系 ### 主要关联表 1. **school_approval_config**: 审批配置表 (config_id) 2. **school_approval_process**: 审批流程表 (通过config_id间接关联) 3. **school_approval_participants**: 审批参与人表 (节点配置关联) 4. **school_approval_history**: 审批历史记录表 (节点执行记录) 5. **school_personnel**: 人员表 (审批人关联) 6. **school_sys_role**: 角色表 (角色审批人关联) 7. **school_department**: 部门表 (部门审批人关联) 8. **school_campus**: 校区表 (审批范围关联) ### 关联说明 - **配置关联**: config_id关联school_approval_config表,确定节点所属的审批配置 - **审批人关联**: approver_ids根据approver_type关联不同的人员、角色或部门表 - **流程关联**: 通过config_id间接关联审批流程,确定节点在流程中的位置 - **执行关联**: 审批执行时根据节点配置创建参与人和历史记录 - **顺序关联**: sequence字段确定节点在审批流程中的执行顺序 - **类型关联**: approver_type决定审批人的查找方式和权限验证 - **签名关联**: sign_type影响节点的审批通过条件和逻辑 ## 索引建议 - **主键索引**: id (自动创建) - **外键索引**: config_id (审批配置查询) - **业务索引**: - (config_id, sequence) (按配置和顺序查询节点) - approver_type (按审批人类型查询) - sign_type (按签名类型查询) - **复合索引**: - (config_id, approver_type) (配置内按类型查询) - (approver_type, approver_ids) (审批人查询) - **时间索引**: - created_at (创建时间查询) - updated_at (修改时间查询) ## 注意事项 1. **外键完整性**: config_id必须存在于school_approval_config表中 2. **审批人类型**: approver_type只能是user、role、department三种类型之一 3. **审批人ID格式**: approver_ids使用逗号分隔,需要验证ID的有效性 4. **签名类型**: sign_type影响审批逻辑,or_sign和and_sign有不同的通过条件 5. **节点顺序**: sequence在同一config_id下应该唯一,确保顺序的正确性 6. **节点名称**: node_name应该具有描述性,便于识别节点功能 7. **审批人验证**: 根据approver_type验证approver_ids中的ID是否存在 8. **权限检查**: 审批人必须具有相应的审批权限 9. **数据一致性**: 修改节点配置时需要考虑正在进行的审批流程 10. **删除限制**: 删除节点前需要检查是否有正在使用的审批流程 11. **配置完整性**: 确保审批配置的所有必要节点都已配置 12. **顺序连续性**: sequence应该连续,避免跳跃或重复 13. **审批人数量**: 会签节点的审批人数量应该合理,避免过多影响效率 14. **角色权限**: 基于角色的审批需要确保角色权限的正确配置 15. **部门层级**: 基于部门的审批需要考虑部门层级关系 16. **并发控制**: 多人同时修改节点配置时需要并发控制 17. **审计要求**: 节点配置的变更需要记录审计日志