智慧教务系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

6.0 KiB

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. 审计要求: 节点配置的变更需要记录审计日志