要做一个通用的流程系统,大概应建立如下数据表:

  1. 流程表(tbl_flow)

 

字段名

数据类型

备注

flow_id

int

流程编号,主键

flow_no

int

流程号,唯一列

flow_name

varchar2(100)

流程名称

remark

varchar2(500)

备注

  示例数据:

 

flow_id

flow_no

flow_name

remark

1

5

请假流程

请假流程

2

10

报销流程

报销流程

 

  2. 流程节点表(tbl_flow_node)

 

字段名

数据类型

备注

flow_node_id

int

流程节点编号,主键

flow_no

int

流程号,与流程表对应

flow_node_name

varchar2(100)

流程节点名称

flow_node_role

varchar2(100)

流程角色

remark

varchar2(500)

备注

  示例数据:

 

flow_node_id

flow_no

flow_node_name

flow_node_role

remark

1

5

提交请假单


提交请假单

2

5

部门经理审批

部门经理

部门经理审批

3

5

总经理审批

总经理

总经理审批

 

  3. 流程线表(tbl_flow_line)

 

字段名

数据类型

备注

flow_line_id

int

流程线编号,主键

flow_no

int

流程号,与流程表对应

prev_node_id

int

前一节点编号

next_node_id

int

后一节点编号

remark

varchar2(500)

备注

  示例数据:

 

flow_line_id

flow_no

prev_node_id

next_node_id

remark

1

5

1

2

提交部门经理审批

2

5

2

3

提交总经理审批

 

  4. 流程角色_员工表(tbl_flow_role_user)

 

字段名

数据类型

备注

flow_role_name

varchar2(100)

流程角色名称

user_id

int

员工编号

dept_id

int

部门编号

  示例数据:

 

flow_role_name

user_id

dept_id

部门经理

13

2

部门经理

26

4

总经理

3

1

 

  以上就是一个通用的审批流程所需要的数据表。

 

  下面,我们来做一个简单的示例,就是请假审批。

  需要为请假审批额外增加两张表,其中一张表对应于请假单,但除了请假单的必需数据外,还增加了“流程号”和“当前节点编号”两个字段;另一张表用于记录审批过程中的审批意见。

 

  5. 请假表(tbl_leave)

 

字段名

数据类型

备注

leave_id

int

请假编号,主键

user_id

int

请假人编号

user_name

varchar2(100)

请假人姓名

leave_type

varchar2(100)

请假类型(病假、事假)

leave_reason

varchar2(500)

请假原因

start_date

date

开始日期

end_date

date

终止日期

add_date

date

提交日期

flow_no

int

流程号

current_node

int

当前节点编号

  补充:再增加一个字段state,用于表示请假单状态,0表示草稿,1表示已提交审批,2表示审批结束。

 

  6. 请假审批表(tbl_leave_audit)

 


字段名

数据类型

备注

audit_id

int

审批编号,主键

leave_id

int

请假编号,与请假表对应

flow_node_id

int

节点编号

user_id

int

审批人编号

user_name

varchar2(100)

审批人姓名

audit_info

varchar2(500)

审批意见

audit_date

date

审批日期