一、ACTIVITI 数据库E-R图(5.16.4)
Activiti 5.16.4 总共有24张表,增加act_evt_log(事件日志),以及增加了对SasS的支持。
在流程定义、运行实例和历史的多张表增加 TENANT_ID_ (租户ID)字段。
为了方便对ACTIVITI数据库设计有整体性的理解,我根据其数据表反过来制作了E-R图。
(图片比较大,可以右键复制图片网址,在独立的标签页打开查看)
ACTIVITI的数据表命名非常规范,在Activiti的帮助文档中也有说明,可查看5.16版本的中文用户手册:
http://www.mossle.com/docs/activiti/
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
- ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
- ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
- ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
- ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
- ACT_GE_*: 通用数据, 用于不同场景下。
- ACT_EVT_*: EVT表示EVENT,目前只有一张表ACT_EVT_LOG,存储事件处理日志,方便管理员跟踪处理。
二、ACTIVITI 数据库物理图整体(5.16.4)
三、ACTIVITI 数据库 流程定义部分(三张表)
四、ACTIVITI 数据库 流程实例部分(七张表)
五、ACTIVITI 数据库 流程全局设置部分(两张表)
六、ACTIVITI 数据库 流程历史部分(八张表)
七、ACTIVITI 数据库 流程参与者部分(四张表)
八、重点字段说明
ACTIVITI的表的字段重复率比较高,一般弄清楚几张表后,其它的都差不多。
## 公共字段:
-
REV_ 乐观锁版本,ACT的表大多有这个字段,这是为了保证操作的独占性。当多个用户修改同一条记录时,
他们获取的REV_是一样的,但是其中一个用户保存了,这是REV_就改变了,然后其他用户保存就会因为REV_
已经过期不能修改了。 -
PROC_DEF_ID_ 流程定义 ID
-
PROC_INST_ID_ 流程实例 ID
-
TASK_ID_ 节点实例 ID(或称任务实例 ID)
-
EXECUTION_ID_ 执行实例 ID。
TASK 和 EXECUTION 的 区别:
TASK 待办任务;EXECUTION 执行路线。
每个TASK 总会对应一个EXECUTION,但EXECUTION不一定对应一个TASK,EXECUTION是分支的执行路线。 -
ACT_ID_ :节点 ID(即bpmn.xml中对节点的命名,如userTask1)
-
TENANT_ID_:租户 ID,对SaaS平台的数据支持。
-
FORM_KEY_: 表单业务键,表示该流程实例、任务实例 关联的表单。
-
OWNER_ : 任务的所有者
-
ASSIGNEE_ : 任务的签收人、代理人、受托人等。
## 指定表的特殊字段:
-
ACT_HI_COMMENT.TYPE_(类型):
行为类型。值为下列内容中的一种:
AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment -
ACT_HI_DETAIL.TYPE_ (类型)
FormProperty, //专门存储表单变量
-
ACT_HI_VARINST.TYPE_(类型)
VariableUpdate //专门存储流程变量参数
-
多张表的VAR_TYPE_ 数据类型
jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、
CustomVariableType、date、double、integer、long、null、short、string
-
ACT_RU_IDENTITYLINK.TYPE_ (参与者类型)
assignee 、 candidate 、 owner 、starter 、participant
-
ACT_RU_TASK.DELEGATION_ (委托类型)
PENDING,RESOLVED。如无委托则为空