Activiti(一)--数据库表设计

1 通用数据库表

1.1 资源表
表ACT GE BYTEARRAY 用于保存与流程引擎相关的资源,只要调用了Activiti 存储服务的API ,涉及的资源均会被转换为byte 数组保存到这个表中。在资源表中设计了一个BYTES宇段,用来保存资源的内容,因此理论上其可以用于保存任何类型的资源(文件或者其他来源的输入流) 。一般情况下, Activiti 使用这个表来保存字符串、流程文件的内容、流程图片内容。ACT GE BYTEARRAY 表主要包含如下字段。
REV_:数据版本,Activiti为一些有可能会被频繁修改的数据表,加入该字段,用来表示该数据被操作的次数
NAME_:资源名称
DEPLOYMENT_ID_:一次部署可以添加多个资源,该字段与部署表ACT_RE_DEPLOYMENT_的主键相关联
BYTES_:资源内容,数据类型为longblob
GENERATED_:是否由Activiti自动产生的资源,0表示false,1表示true

1.2 属性表
Activiti将全部的属性抽象为key_value对,每个属性都有名称和值,使用ACT_GE_PROPERTY来保存这些属性,表字段如下:
NAME_:属性名称
VALUE_:属性值
REV_:数据的版本号

2 流程存储表

2.1 部署数据表
在Activiti中,一次部署可以添加多个资源,资源会被保存到资源表中(ACT_GE_BYTEARRAY),而对于部署,则部署信息会被保存到部署表中,部署表名称为ACT_RE_DEPLOYMENT,表字段如下:
NAME_:部署的名称
DEPLOYMENT_TIME_:部署时间
2.2 流程定义表
CATEGORY_:流程定义的分类,读取流程xml文件中的targetNamespace值
NAME_:流程定义名称,兑取流程文件中process元素的name属性
DEPLOYMENT_ID_:流程定义对应的部署数据ID
RESOURCE_NAME_:流程定义对应的资源名称,一般为流程文件的相对路径
DGRM_RESOURCE_NAME_:流程定义对应的流程图资源名称
SUSPENSION_STATE_:表示流程定义的状态是激活还是中止,激活为1,中止为2,中止状态下不能启动流程

3 身份数据表

3.1 用户表
流程引擎用户的信息被保存在ACT_ID_USER表中,表字段如下:
FIRST_:人名
LAST_:姓氏
EMAIL_:用户邮箱
PICTRUE_ID_:用户图片,对饮资源表的数据id
3.2 用户账号信息表
Activiti将用户,用户账号和用户信息分为三种数据,其中用户表保存用户的数据,而用户账号和用户信息,则被保存到ACT_ID_INFO表中,表字段如下:
USER_ID_:对应用户表的数据id,但没有强制做外键关联
TYPE_:信息类型,当前可以设置用户账号(account),用户信息(userinfo)和NUll三种值
KEY_:数据的键,可以根据该键来查找用户信息的值
VALUE_:数据的值
PASSWORD_:用户账号的密码字段
PARENT_ID_:该信息的父信息id,如果一条数据设置了父信息id,则表示该数据是用户账号(信息)的明细数据
3.3用户组表
使用ACT_ID_GROUP表来保存用户组的数据,该表有以下字段:
NAME_:用户组名称
TYPE_:用户组类型,类型不能由Acitiviti提供,但是在某些业务中,Activiti会根据该字段的值进行查询,字段值由Activiti定义
3.4关系表
USER_ID_:用户id,不能NULL
GROUP_ID_:用户组id,不能为NULL

4 运行时数据表

4.1流程实例表
流程启动后,会产生与i个流程实例,同时会产生相应的执行流,流程实例和执行流数据均被保存在ACT_RU_EXECUTION表中,如果一个流程实例只有一条执行流,那么该表中只产生一条数据,该数据即表示执行流,也表示流程实例.该表有以下字段:
PROC_INST_ID_:流程实例ID,一个流程实例有可能会产生多个执行流,该字段表示执行流所属的流程实例
BUSINESS_KEY_:启动流程时指定的业务主键
PARENT_ID_:父执行流的ID,一个流程实例有可能会产生执行流,该字段保存父执行流ID
PROC_DEF_ID_:流程定义数据的ID
ACT_ID_:当前执行流行为的ID,ID在流程文件中定义
IS_ACTIVE_:该执行流是否活跃的标识
IS_CURRENT_:执行流是否正在并行
SUSPENSION_STATE_:标识流程的中断状态

4.2流程任务表
流程在运行过程中所产生的任务数据保存在ACT_RU_TASK_表中,表字段如下:
EXECUTION_ID_:任务所在的执行流ID
PROC_INST_ID_:对应的流程实例ID
PROC_DEF_ID_:对应流程定义数据的ID
NAME_:任务名称,在流程文件中定义
DESCRIPTION_:任务描述,在流程文件中定义
OWNER_:任务拥有人,没有做外键关联
PRIORITY_:任务优先级数值
DUE_DATE_:任务预定日期,类型为datetime

4.3流程参数表
Activiti提供了ACT_RU_VARIABLE表来存放流程中的参数,这类参数包括流程实例参数,执行流参数和任务参数,参数类型可能会由很多种,因此该表使用多个字段来存放参数值,表字段如下:
TYPE_:参数类型,该字段可以为boolean,bytes,serializable,date,double,integer,jpa-entity,long,null.short,string
NAME_:参数名称
EXECUTION_ID_:该参数对应的执行流id,可以为null
PROC_INST_ID_:该参数对应的流程实例id,可以为null
TASK_ID_:如果该参数是任务参数,就需要设置任务ID
BYTEARRAY_ID_:如果参数值是序列化对象,那么可以将该对象作为资源保存到资源表中,该字段为资源表id
DOUBLE_:参数类型为double的话,则值会被保存到该字段中
TEXT_:用于保存文本类型的参数值,该字段为varchar类型,长度为4000字节
TEXT2_:与TEXT_字段一样,用于保存文本类型的参数值

4.4流程与身份关系表
用户组与用户之间的关系,使用ACT_ID_MEMBERSHIP表保存,用户或者用户组与流程数据之间的关系,则使用ACT_RU_IDENTIFYLINK表进行保存,表字段如下:
GROUP_ID:该关系数据中的用户组ID
TYPE_:该关系数据的类型,当前提供3个值,assignee,candidate和owner,表示流程数据的指派人(组),首选人(组)和拥有人
USER_ID_:关系数据中的用户ID
TASK_ID_:关系数据中的任务ID
PROC_DEF_ID_:关系数据中的流程定义ID

4.5工作数据表
在流程执行的过程中,会有一些工作需要定时或者重复执行,这类工作数据被保存到工作表中,Activiti提供了四个工作表用户保存不同的工作数据
ACT_RU_JOB:一般工作表
ACT_RU_DEADLETTER_JOB_:无法执行工作表,用于存放无法执行的工作
ACT_RU_SUSPENDED_JOB_:终端工作表,中断工作产生后,会将工作保存到该表中
ACT_RU_TIMER_JOB_:定时器工作表,用于存放定时器工作

4.6事件描述表
如果流程达到某类事件节点,Activiti会往ACT_RU_EVENT_SUBSCR_表中加入事件描述数据,这些事件描述数据将会决定流程事件的触发.表字段如下:
EVENT_TYPE_:事件类型,不同的事件会产生不同类型的事件描述,并不是所有的事件都会产生事件描述
EVENT_NAME_:事件名称,在流程文件中定义
EXECUTSION_ID_:事件所在的执行流ID
PROC_INST_ID_:事件所在的流程实例ID
ACTIVITY_ID_:具体事件的id,在流程文件中定义
CONFIGURATION_:事件的配置属性,该字段中有可能存放流程定义ID,执行流ID或者其他数据

5 历史数据表

5.1流程实例表
START_ACT_ID_:开始活动的ID,一般是流程开始事件的ID,在流程文件中定义
END_ACT_ID_:流程最后一个活动的id,一般是流程结束事件的id,在流程文件中定义
DELETE_REASON_:该流程实例被删除的原因

5.2流程明细表
流程明细表(ACT_HI_DETAIL)会记录流程执行过程中的参数或者表单数据,由于在流程执行过程中,会产生大量这类数据,因此默认情况下,Activiti不会保存流程明细数据,除非将流程引擎的历史数据配置为full

5.3历史任务表
当流程到达某个任务节点时,就会向历史任务表(ACT_HI_TASKINST)中写入历史任务数据,该表与运行时的任务表类似.历史行为表(ACT_HI_ACTINST)会记录每一个流程活动的实例,一个流程活动将会被记录为一条数据,根据表可以追踪最完整的流程信息

5.4附件表和评论表
使用任务服务(TaskService)的API,可以添加附件和评论,这些附件和评论见保存到ACT_HI_ATTACHMENT和ACT_HI_COMMENT表中.ACT_HI_ATTACHMENT表字段如下:
USEER_ID_:附件对应的用户ID,可以为nul
NAME_:附件名称
DESCRIPTION_:附件描述
TYPE_:附件类型
TASK_ID_:该附件对应的任务id
PROC_INST_ID_:对应的流程实例ID
URL_:连接到该附件的url
COMMENT_ID_:附件内容ID,附件的内容,将会被保存到资源表中,该字段记录资源数据id

ACT_HI_COMMENT表实际不止保存评论数据,它还会保存某些事件数据,但它的表名为COMMENT,因此更倾向于把它叫做评论表,表字段如下:
TYPE_:评论的类型,可以设值为"event"或者"comment",表示事件记录数据或者评论数据
TIME_:数据产生的时间
USER_ID_:产生评论数据的任务ID
TASK_ID_:该评论数据的任务ID
PROC_INST_ID_:数据对应的流程实例ID
ACTION_:该评论数据的操作标识
MESSAGE_:该评论数据的信息
FULL_MSG_:该字段同样记录评论数据的信息

6 DMN规则引擎表

6.1决策部署表
保存决策数据,类似于流程定义部署,每一次部署,可以添加多份决策文件,向部署表中写入一条部署数据 ,对应数据表为ACT_DMN_DEPLOYMENT,表字段如下:
NAME_:部署名称
CATEGORY_:部署的目录名称
PARNET_DEPLOYMENT_ID_:父部署ID

6.2决策表
可以先将决策看成流程定义,决策文件中保存着决策表,部署时会解析决策文件中的决策模型并将其保存到ACT_DMN_DECISION_TABLE表中,该表主要有以下字段:
KEY_:决策业务主键
DEPLOYMENT_ID_:所属的部署数据ID

6.3部署资源表
规则引擎相关的资源,例如决策文件,图片等,被保存在ACT_DMN_DEPLOYMENT_RESOURCE表,该表类似于流程引擎的资源表,表字段如下:
NAME_:资源名称
DEPLOYMENT_ID_:所属的部署数据ID
RESOURCE_BYTES_:资源内容,longblob类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值