会签 数据库表设计_关于OA流程相关数据表的设计
一、前言
近期有些同学问起流程的表设计,终于有时间能写下博客,并整理下之前所发布的文章。
之前的文章讲到的表设计,没有给全且还存在漏洞,在这里向各位同学表示歉意。这是我个人最新领悟的一些流程思维,欢迎大家指正。关于流程审批,涉及的操作比较多,本章仅考虑了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流程相关数据表的设计相关推荐
- 某电商网站的数据库设计(2)——商品销售相关数据表的设计
某电商网站的数据库设计(2)--商品销售相关数据表的设计 目录 某电商网站的数据库设计(2)--商品销售相关数据表的设计 四.销售信息表 1.非套装商品销售数据表 2.套装商品对应的单品销售数据表 3 ...
- vba交付图表设计_您是在为交付目的而“设计”吗?
vba交付图表设计 重点 (Top highlight) It's a regular Monday morning. All the design team is organizing the ta ...
- php将excel数据导入mysql表中_【PHP】将EXCEL表中的数据轻松导入Mysql数据表
在网络上有不较多的方法,在此介绍我已经验证的方法. 方法一.利用EXCEL表本身的功能生成SQL代码 ①.先在"phpmyadmin"中建立数据库与表(数据库:excel,数据表: ...
- mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)
MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用sel ...
- 05-使用Redis缓存数据,管理员相关数据表
文章目录 使用Redis缓存数据 管理员相关数据表 使用Redis缓存数据 使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库. 通常,应用Redis的场景有: 高 ...
- oracle导入表无反应,EZDML无法导入oracle数据表的解决方法
EZDML无法导入oracle数据表的解决方法 EZDML无法导入oracle数据表的解决方法 1.配置好oracle连接,进行导入数据表时报错:sql*net not properly instal ...
- 权限控制相关数据表分析和创建
权限控制相关数据表分析和创建 实体类分析:包含用户.角色.权限三大块 用户User,角色Role,权限Permission 为了方便进行动态的菜单管理,也就是不同权限用户进入到后台系统所看到的菜单是不 ...
- 用MongoDB数据库来管理办公系统中文档型的表单和信息——通用流程化应用审批单设计思路(二,续)
1.办公系统中文档的定义 办公系统中的文档就是指对数据不敏感的业务,例如流程中的审批单.信息专栏.数据上报.信息记录等.而对于这些信息的管理,特别是时效性较强的管理记录,仍采用关系型数据库进行管理. ...
- 在sqlyog进行数据库的备份_狂神说MySQL07:权限及如何设计数据库
狂神说MySQL系列连载课程,通俗易懂,基于MySQL5.7.19版本,欢迎各位狂粉转发关注学习.禁止随意转载,转载记住贴出B站视频链接及公众号链接! 上课视频同步文档 权限及设计数据库 用户管理 使 ...
最新文章
- android webview 加载本地pdf,android – 在WebView中打开PDF
- SeaJS基本开发原则
- javascript:为string类添加三个成员,实现去左,右,及所有空格
- Nature撤稿!三年前微软在量子计算上的巨大胜利终究是个错误
- Hash 函数资源链接汇总
- linux dmesg 显示可读时间格式
- 【Linux 内核】实时调度类 ③ ( 实时调度类 rt_sched_class 源码 | 调度类 sched_class 源码 )
- ORA-16038的解决(日志无法归档)
- 【笔记】spring的注解回顾,springboot-restful项目结构介绍 springboot-freemarker ⼯程配置详解
- oracle切换sqlserver,ORACLE语法转换成sqlserver,该如何解决
- groovy 和 java的区别_Groovy和JAVA的区别
- java map操作_Java HashMap的基本操作
- [转]如何删除图片链接的蓝色边框?
- MySQL:日期函数、时间函数总结(MySQL 5.X)
- JDBC系列 之 存储过程
- 窗口设置固定的尺寸(pyqt qt for python)
- 从苏宁电器到卡巴斯基第03篇:我的本科时光(下)
- 如何使用Flexible实现手淘H5页面的终端适配
- 如何在毕业论文Word中插入图表目录
- 解密拼多多800元裂变营销新方法
热门文章
- 已安装内存:16.0GB(3.93GB可用):拆开机箱拔掉内存条重新安装试试。
- 清华大学计算机与科学分数线,清华大学各地录取情况及调档线一览
- 2018普通话水平测试软件,2018年 普通话测试 照片要求
- 行人重识别(ReID)概述
- K-Means聚类分析广告投放效果的改进(数据标准化、最佳K值的确定)
- CCNP642-825实验题题库
- Windows删除流氓软件方法记录
- Unity 中国区总经理符国新:3D引擎开发
- torc中abs()和abs_()的区别
- 在LCD上显示英文和汉字