审批流程
学习:http://t.csdnimg.cn/AtyDS
上报工作,请假,调岗,打卡等
员工提交各个模块的申请都要走审批流程,审批流程要通过后才能够生效
人物角色:申请人,申请详情,审批流程,审批规则
申请人点击app上的某个申请,比如请假,
然后填写上必要的内容作为申请详情,比如请假原因,请假时间等,
接下来申请人指定一个审批流程后提交。
审批流程中每个审批人收到待审批和待办后一次按规则审批,通过后申请有效,驳回后申请失效。
通过我的申请,已审批等页面可以查看审批详情。
数据库的表:用户表(包括申请人和审批人)
一张审批表(用来记录某一个审批的全部信息)
多张审批详情表(请假详情,工作量详情等)
审批流程表
审批历史表
-
PRIMARY KEY (
user_id
): 主键,用于唯一标识每个员工。基于user_id
字段。 -
UNIQUE KEY
users_username
(username
): 唯一键,确保每个用户名在表中是唯一的。基于username
字段。 -
KEY
users_dept_id
(dept_id
): 索引,用于加速对部门编码的查询。基于dept_id
字段。
-
PRIMARY KEY (
approval_id
): 主键,用于唯一标识每个审批记录。基于approval_id
字段。 -
KEY
index_approval_applicant
(applicant_id
): 索引,加速对申请人编码的查询。基于applicant_id
字段。 -
KEY
index_approval_approver
(approver_id
): 索引,加速对审批人编码的查询。基于approver_id
字段。 -
KEY
index_approval_create_time
(create_time
): 索引,加速根据创建时间的查询。基于create_time
字段。
审批详情表:
就是工作量,这里的可以有多张审批详情表是说请假是一张表,调岗是一张表等
我们看到无论是审批表还是详情表,都有一个status字段,来标志审批状态。
通过模块化的思想,可以将审批详情分为多张表。这是从审批系统的角度思考,而从各个模块的角度去想,因其都需要进行审批,所以只用一张表来存储就行,不需要为其单独的建表。
而所谓的审批规则是根据业务场景确定的,比如我这个项目,审批规则就是最简单的分级审批,每个申请只有一个审批流程,审批流程中每一级只有一个审批人,任何一级审批驳回后整个申请就宣告结束。其实只要有了基础的审批表、审批详情表、审批流程表,任何审批规则都是可以实现的,无非是复杂程度不同。
如果有查看每一级审批记录的需求,也可以再建立一张审批历史表,其中记录了每一级审批的审批人、时间等信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示