一、前言
近期有些同学问起流程的表设计,终于有时间能写下博客,并整理下之前所发布的文章。
之前的文章讲到的表设计,没有给全且还存在漏洞,在这里向各位同学表示歉意。这是我个人最新领悟的一些流程思维,欢迎大家指正。关于流程审批,涉及的操作比较多,本章仅考虑了1/2/3点。
审批
退回
撤回/收回(指发起者中止流程)
加签(征求另一人或多人的意见,然后再回到原审批人)
转发(转发给他人进行审批)
会签(通常用于审批后给相关的人签字确认,以获得工作上的协调。)
知会(注意与“会签”的区别,“会签”是要留签字的,知会只是个认指定的人知道有这个流程这么回事,并能查看流程)
沟通(与流程相关人员就流程问题进行沟通,类似留言或论坛方式)
二、解决流程业务
这是常见到的两种流程场景过程,此类流程都明确规定了每个流程节点必须指定到某一操作人(不指定操作人不在本讨论范围内)。
1.学生请假流程图
2.学生离校手续申请流程图
两种流程各有一些不同,在“学生请假流程”中,学生可以多次申请,且流程业务的走向由表单的相关数据来决定。而在“学生离校手续申请流程”中,学生只能申请一次,且存在多个部门同时处理业务的过程,而归纳节点(暂且这样称呼)必须等待前置节点完成后方可进行审批。
三、表设计
表名:v1_flow(流程表)
序号
列名
数据类型
长度
小数位
标识
主键
外键
允许空
默认值
说明
1
id
int
11
是
是
否
auto_increment
2
name
varchar
255
是
流程名称
3
form_id
int
11
是
表单设计编号
4
process_id
int
11
是
流程设计编号
5
limit_times
int
11
是
-1
一个用户可以发起多少次,-1=不限制
6
is_lock
tinyint
4
是
是否锁定
表名:v1_flow_activity(流程活动表)
序号
列名
数据类型
长度
小数位
标识
主键
外键
允许空
默认值
说明
1
id
int
11
是
是
否
auto_increment
2
sponsor
int
11
是
活动发起者
3
title
varchar
255
是
标题
4
status
varchar
255
是
状态,0=仅保存,1=运行中,2=已中止,9=已结束
5
join_time
bigint
15
是</