一、前言

近期有些同学问起流程的表设计,终于有时间能写下博客,并整理下之前所发布的文章。

之前的文章讲到的表设计,没有给全且还存在漏洞,在这里向各位同学表示歉意。这是我个人最新领悟的一些流程思维,欢迎大家指正。关于流程审批,涉及的操作比较多,本章仅考虑了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

加入时间戳

6

flow_id

int

11

当前运行的流程编号,对应v1_flow表的id

7

cur_process_id

int

11

当前运行的流程设计编号

8

cur_form_id

int

11

当前运行的表单设计编号

cur_process_id和cur_form_id设计的目的:有些流程在流程活动运行过程中,更改了表单设计编号或流程设计编号。为让流程能继续往下运行而设计。

表名:v1_flow_activity_process(流程活动运行表)

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

11

auto_increment

2

activity_id

int

11

流程活动编号,对应v1_flow_activity表的id

3

run_node_id

int

11

当前运行的节点编号,对应v1_flow_node表的id

4

arrive_time

bigint

15

信息到达时间戳

5

accept_user_id

int

11

0

接收用户编号

6

accept_status

tinyint

4

0

接收信息状态,1=已接收,0=尚未接收

7

accept_time

bigint

15

接收时间戳

8

done_user_id

int

11

0

审批人编号(审批人不一定是接收的用户)

9

done_status

tinyint

4

0

审批状态,1=已审批,0=为尚未审批

10

done_time

bigint

15

审批时间戳

表名:v1_flow_form(表单设计表)

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

11

auto_increment

2

name

varchar

255

表单设计名称

3

data_table

varchar

255

数据表表名

4

title_scheme

varchar

255

流程活动的标题构成方式,如:#{student_no}#{user_name}请假申请

5

layout

varchar

1000

表单设计HTML代码

表名:v1_flow_form_element(表单元素表)

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

11

auto_increment

2

form_id

int

11

所属表单设计编号

3

type

varchar

255

表单类型,text/select/radio/checkbox/button等

4

label

varchar

255

标记名称

5

name

varchar

255

表单元素名称

6

data_source

varchar

500

数据源,select/radio/checkbox会存在

7

data_type

varchar

50

数据类型,int/varchar等

8

data_length

int

11

数据长度

9

default_value

varchar

255

默认值

10

placeholder

varchar

255

11

styles

varchar

255

样式

12

attributes

varchar

255

属性

13

is_hidden

tinyint

4

是否隐藏

表名:v1_flow_process(流程设计表)

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

11

auto_increment

2

name

varchar

255

流程设计名称

表名:v1_flow_node(流程节点表)

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

11

auto_increment

2

process_id

int

11

所属流程设计编号,对应v1_flow_process表的id

3

node_name

varchar

50

节点名称

4

node_type

varchar

255

节点类型,1=开始节点,2=收纳节点,3=子流程节点,9=结束节点

5

write_forms

varchar

200

可写字段集合

6

operator

int

11

指定的审批人用户id,可留空

7

operator_type

tinyint

4

审批人类型,此项可自行设计,如-1=自行选择,1=发起者的班主任,2=发起者所在部门的二级学院学生科科长,3=发起者所在部门的二级学院领导等

8

allow_back

tinyint

4

是否允许回退操作

9

back_step

tinyint

4

1

回退操作步长,1=一步,2=两步

10

styles

varchar

500

节点样式,长宽高top/left等

11

actions

varchar

200

节点审批后的回调方法(钩子),需要程序具体实现

12

condition_prev

tinyint

4

2

所有前置节点(可能存在多个前置节点)能运行到当前节点的方案,1=只要有一个审批完成即可,2=必须所有的审批完成即可

关于子流程,本章未做考虑

表名:v1_flow_process_procedure(流程设计步骤/线程表--即节点之间的线走势)

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

11

auto_increment

2

cur_node_id

int

11

当前节点id,对应v1_flow_node表的id

3

next_node_id

int

11

下一节点id,对应v1_flow_node表的id

4

limit_hour

int

255

-1

节点之间限制多少小时内必须审批,-1=不限制

5

condition_next_data

varchar

1000

能往下一节点运行的数据条件,如请假中流程可设置#{days}>=3

表名:v1_flow_data1(流程编号为1的数据表-请假表)

序号

列名

数据类型

长度

小数位

标识

主键

外键

允许空

默认值

说明

1

id

int

11

auto_increment

2

dept_name

varchar

50

学生所在二级学院

3

major_name

varchar

50

学生专业

4

classes_name

varchar

50

学生行政班级

5

user_id

int

11

用户id

6

student_no

varchar

50

学号

7

user_name

varchar

50

姓名

8

sq_timeBegin

bigint

15

请假开始时间戳

9

sq_timeEnd

bigint

15

请假截至时间戳

10

sq_days

int

11

请假天数

11

sq_reason

varchar

200

请假事由

12

banzhuren

varchar

100

班主任姓名

13

banzhuren_shenpi

varchar

25

班主任审批结果

14

banzhuren_shenpi_text

varchar

255

班主任审批意见

15

xsk2

varchar

255

二级学院学生审批审批人姓名

16

xsk2_shenpi

varchar

255

二级学院学生审批结果

17

xsk2_shenpi_text

varchar

255

二级学院学生审批意见

18

lingdao2

varchar

255

二级学院领导姓名

19

lingdao2_shenpi

varchar

255

二级学院领导审批结果

20

lingdao2_text

varchar

255

二级学院领导审批意见

21

xsk

varchar

255

学校学生科审批人姓名

22

xsk_shenpi

varchar

255

学校学生科审批结果

23

xsk_shenpi_text

varchar

255

学校学生科审批意见

24

xjr

varchar

255

销假人姓名

25

xj_days

varchar

255

销假天数

26

xj_time

datetime

销假时间

27

xjshr

varchar

255

销假审核人姓名

28

xjshr_shenhe

varchar

255

销假审核结果

29

xjshr_shenhe_text

varchar

255

销假审核意见

会签 数据库表设计_关于OA流程相关数据表的设计相关推荐

  1. 某电商网站的数据库设计(2)——商品销售相关数据表的设计

    某电商网站的数据库设计(2)--商品销售相关数据表的设计 目录 某电商网站的数据库设计(2)--商品销售相关数据表的设计 四.销售信息表 1.非套装商品销售数据表 2.套装商品对应的单品销售数据表 3 ...

  2. vba交付图表设计_您是在为交付目的而“设计”吗?

    vba交付图表设计 重点 (Top highlight) It's a regular Monday morning. All the design team is organizing the ta ...

  3. php将excel数据导入mysql表中_【PHP】将EXCEL表中的数据轻松导入Mysql数据表

    在网络上有不较多的方法,在此介绍我已经验证的方法. 方法一.利用EXCEL表本身的功能生成SQL代码 ①.先在"phpmyadmin"中建立数据库与表(数据库:excel,数据表: ...

  4. mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用sel ...

  5. 05-使用Redis缓存数据,管理员相关数据表

    文章目录 使用Redis缓存数据 管理员相关数据表 使用Redis缓存数据 使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库. 通常,应用Redis的场景有: 高 ...

  6. oracle导入表无反应,EZDML无法导入oracle数据表的解决方法

    EZDML无法导入oracle数据表的解决方法 EZDML无法导入oracle数据表的解决方法 1.配置好oracle连接,进行导入数据表时报错:sql*net not properly instal ...

  7. 权限控制相关数据表分析和创建

    权限控制相关数据表分析和创建 实体类分析:包含用户.角色.权限三大块 用户User,角色Role,权限Permission 为了方便进行动态的菜单管理,也就是不同权限用户进入到后台系统所看到的菜单是不 ...

  8. 用MongoDB数据库来管理办公系统中文档型的表单和信息——通用流程化应用审批单设计思路(二,续)

    1.办公系统中文档的定义 办公系统中的文档就是指对数据不敏感的业务,例如流程中的审批单.信息专栏.数据上报.信息记录等.而对于这些信息的管理,特别是时效性较强的管理记录,仍采用关系型数据库进行管理. ...

  9. 在sqlyog进行数据库的备份_狂神说MySQL07:权限及如何设计数据库

    狂神说MySQL系列连载课程,通俗易懂,基于MySQL5.7.19版本,欢迎各位狂粉转发关注学习.禁止随意转载,转载记住贴出B站视频链接及公众号链接! 上课视频同步文档 权限及设计数据库 用户管理 使 ...

最新文章

  1. android webview 加载本地pdf,android – 在WebView中打开PDF
  2. SeaJS基本开发原则
  3. javascript:为string类添加三个成员,实现去左,右,及所有空格
  4. Nature撤稿!三年前微软在量子计算上的巨大胜利终究是个错误
  5. Hash 函数资源链接汇总
  6. linux dmesg 显示可读时间格式
  7. 【Linux 内核】实时调度类 ③ ( 实时调度类 rt_sched_class 源码 | 调度类 sched_class 源码 )
  8. ORA-16038的解决(日志无法归档)
  9. 【笔记】spring的注解回顾,springboot-restful项目结构介绍 springboot-freemarker ⼯程配置详解
  10. oracle切换sqlserver,ORACLE语法转换成sqlserver,该如何解决
  11. groovy 和 java的区别_Groovy和JAVA的区别
  12. java map操作_Java HashMap的基本操作
  13. [转]如何删除图片链接的蓝色边框?
  14. MySQL:日期函数、时间函数总结(MySQL 5.X)
  15. JDBC系列 之 存储过程
  16. 窗口设置固定的尺寸(pyqt qt for python)
  17. 从苏宁电器到卡巴斯基第03篇:我的本科时光(下)
  18. 如何使用Flexible实现手淘H5页面的终端适配
  19. 如何在毕业论文Word中插入图表目录
  20. 解密拼多多800元裂变营销新方法

热门文章

  1. 已安装内存:16.0GB(3.93GB可用):拆开机箱拔掉内存条重新安装试试。
  2. 清华大学计算机与科学分数线,清华大学各地录取情况及调档线一览
  3. 2018普通话水平测试软件,2018年 普通话测试 照片要求
  4. 行人重识别(ReID)概述
  5. K-Means聚类分析广告投放效果的改进(数据标准化、最佳K值的确定)
  6. CCNP642-825实验题题库
  7. Windows删除流氓软件方法记录
  8. Unity 中国区总经理符国新:3D引擎开发
  9. torc中abs()和abs_()的区别
  10. 在LCD上显示英文和汉字