审批流程

学习:http://t.csdnimg.cn/AtyDS

 

上报工作,请假,调岗,打卡等

员工提交各个模块的申请都要走审批流程,审批流程要通过后才能够生效

 

人物角色:申请人,申请详情,审批流程,审批规则

申请人点击app上的某个申请,比如请假,

然后填写上必要的内容作为申请详情,比如请假原因,请假时间等,

接下来申请人指定一个审批流程后提交。

审批流程中每个审批人收到待审批和待办后一次按规则审批,通过后申请有效,驳回后申请失效。

通过我的申请,已审批等页面可以查看审批详情。

 

 

数据库的表:用户表(包括申请人和审批人)

                   一张审批表(用来记录某一个审批的全部信息)

                    多张审批详情表(请假详情,工作量详情等)

                     审批流程表

                     审批历史表

 

 

  1. PRIMARY KEY (user_id): 主键,用于唯一标识每个员工。基于user_id字段。

  2. UNIQUE KEY users_username (username): 唯一键,确保每个用户名在表中是唯一的。基于username字段。

  3. KEY users_dept_id (dept_id): 索引,用于加速对部门编码的查询。基于dept_id字段。

 

 

 

 

  1. PRIMARY KEY (approval_id): 主键,用于唯一标识每个审批记录。基于approval_id字段。

  2. KEY index_approval_applicant (applicant_id): 索引,加速对申请人编码的查询。基于applicant_id字段。

  3. KEY index_approval_approver (approver_id): 索引,加速对审批人编码的查询。基于approver_id字段。

  4. KEY index_approval_create_time (create_time): 索引,加速根据创建时间的查询。基于create_time字段。

 

 审批详情表:

就是工作量,这里的可以有多张审批详情表是说请假是一张表,调岗是一张表等

 

 

我们看到无论是审批表还是详情表,都有一个status字段,来标志审批状态。

​ 通过模块化的思想,可以将审批详情分为多张表。这是从审批系统的角度思考,而从各个模块的角度去想,因其都需要进行审批,所以只用一张表来存储就行,不需要为其单独的建表。

​ 而所谓的审批规则是根据业务场景确定的,比如我这个项目,审批规则就是最简单的分级审批,每个申请只有一个审批流程,审批流程中每一级只有一个审批人,任何一级审批驳回后整个申请就宣告结束。其实只要有了基础的审批表、审批详情表、审批流程表,任何审批规则都是可以实现的,无非是复杂程度不同。

​ 如果有查看每一级审批记录的需求,也可以再建立一张审批历史表,其中记录了每一级审批的审批人、时间等信息。

 

 


 

posted @ 2024-01-21 00:48  艾鑫4646  阅读(28)  评论(0编辑  收藏  举报