flowable--数据库简要说明

anjingsi 1年前 ⋅ 523 阅读

flowable--数据库简要说明

以6.4.0版本为例,大体数据库字段变化不大

一、总体概况

1)、命名规则

表名前缀与后缀基本含义说明
ACT_RE_*’RE’表示repository(存储)RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)
ACT_RU_*’RU’表示runtime这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快
ACT_ID_*’ID’表示identity(组织机构)这些表包含标识的信息,如用户,用户组,等等
ACT_HI_*’HI’表示history就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务等
ACT_GE_*普通数据各种情况都使用的数据
*_ DATABASECHANGELOGliuquibase的log表
*_DATABASECHANGELOGLOCKliuquibase的log表
  • none: 不保存任何历史记录,可以提高系统性能;
  • activity:保存所有的流程实例、任务、活动信息;
  • audit:也是Activiti的默认级别,保存所有的流程实例、任务、活动、表单属性;
  • full:最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。

2)、数据库表结构(不同版本数量可能会有出入,经典34张表)

通用数据库

数据表描述
ACT_GE_PROPERTY属性表(保存流程引擎的kv键值属性)--PropertyEntityImpl
ACT_GE_BYTEARRAY资源表(存储流程定义相关的资源)--ByteArrayEntityImpl

流程定义存储表

数据表描述
ACT_RE_DEPLOYMENT流程部署表--DeploymentEntityImpl
ACT_RE_PROCDEF已部署的流程定义--ProcessDefinitionEntityImpl
ACT_RE_MODEL模型信息表(用于Web设计器)--ModelEntityImpl
ACT_PROCDEF_INFO流程定义动态改变信息表--ProcessDefinitionInfoEntityImpl

身份数据表

数据表描述
ACT_ID_USER用户基本信息表--UserEntityImpl
ACT_ID_INFO用户信息详情表--IdentityInfoEntityImpl
ACT_ID_GROUP用户组信息表(用于Web设计器)--GroupEntityImpl
ACT_ID_MEMBERSHIP人与组关系表--MemberShipEntityImpl
ACT_ID_BYTEARRAY二进制数据表(flowable)--
ACT_ID_PRIV权限表(flowable)--
ACT_ID_PRIV_MAPPING用户或组权限关系表(flowable)--
ACT_ID_PROPERTY属性表(flowable)--
ACT_ID_TOKEN系统登录日志表(flowable)--

运行时流程数据表

数据表描述
ACT_RU_EXECUTION流程实例与分支执行表--ExecutionEntityImpl
ACT_RU_TASK运行时任务表--TaskEntityImpl
ACT_RU_VARIABLE运行时变量表--VariableInstanceEntityImpl
ACT_RU_IDENTITYLINK运行时用户关系信息--IdentityLinkEntityImpl
ACT_RU_EVENT_SUBSCR事件订阅表--EventSubscriptionEntityImpl
ACT_RU_JOB作业表--JobEntityImpl
ACT_RU_TIMER_JOB定时作业表--TimerJobEntityImpl
ACT_RU_SUSPENDED_JOB暂停作业表--SuspendedJobEntityImpl
ACT_RU_DEADLETTER_JOB死信表--DeadLetterJobEntityImpl(正在运行的任务表有歧义)
ACT_RU_HISTORY_JOB历史作业表(flowable)--

历史流程数据表

数据表描述
ACT_HI_PROCINST历史流程实例表--HistoricProcessInstanceEntityImpl
ACT_HI_ACTINST历史节点信息表--HistoricActivityInstanceEntityImpl
ACT_HI_TASKINST历史任务表--HistoricTaskInstanceEntityImpl(只记录usertask内容)
ACT_HI_VARINST历史变量--HistoricVariableInstanceEntityImpl
ACT_HI_IDENTITYLINK历史的流程运行过程中用户关系--HistoricIdentityLinkEntityImpl
ACT_HI_DETAIL历史的流程运行中的细节信息--HistoricDetailEntityImpl
ACT_HI_ATTACHMENT历史的流程附件--AttachmentEntityImpl
ACT_HI_COMMENT历史的说明性信息--CommentEntityImpl
ACT_EVT_LOG事件日志表--EventLogEntryEntityImpl

其他表

数据表描述
ACT_EVT_LOG事件日志表--EventLogEntryEntityImpl

二、核心表含义说明

三、核心表

act_ge_bytearray

act_ge_bytearray(二进制文件,也叫资源表)

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NOvarchar64PRI
REV_版本号NULLYESintNULLActiviti有可能会被频繁修改数据库表,加入字段,用来表示该数据被操作的次数
NAME_资源名称NULLYESvarchar255部署的文件名称,如:mail.bpmn、mail.png 、mail.bpmn20.xml
DEPLOYMENT_ID_部署序号IDNULLYESvarchar64ACT_RE_DEPLOYMENT部署序号,一次部署可以部署多个资源,该字段与部署表ACT_RE_DEPLOYMENT的主键关联
BYTES_字节(二进制数据)NULLYESlongblob4294967295
GENERATED_是否系统生成NULLYEStinyintNULL0为用户上传,1为系统自动生成, 比如系统会自动根据xml生成png

属性表ACT_GE_PROPERTY | 字段 | 字段名称 | 字段默认值 | 是否允许为空 | 数据类型 | 字段长度 | 键 | 备注 | | ------ | -------- | ---------- | ------------ | -------- | -------- | ---- | ---- | | NAME_ | 主键 | 属性名称 | NO | varchar | 64 | PRI | | | REV_ | 版本号 | NULL | YES | int | NULL | | | | VALUE_ | 属性值 | NULL | YES | varchar | 300 | | |

act_re_deployment--部署ID表

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NOvarchar64PRI
NAME_名称NULLYESvarchar255
CATEGORY_类别NULLYESvarchar255流程定义的Namespace就是类别
TENANT_ID_租户idYESvarchar255
DEPLOY_TIME_部署时间NULLYEStimestampNULL

部署流程定义时需要被持久化保存下来的信息。

act_re_procdef--流程表

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NULLNOvarchar64PRI
REV_版本号NULLYESintNULLversion
CATEGORY_分类NULLYESvarchar255流程定义的Namespace就是类别
NAME_名称NULLYESvarchar255
KEY_标识NULLNOvarchar255MUL
VERSION_版本NULLNOintNULL
DEPLOYMENT_ID_部署IDNULLYESvarchar64
RESOURCE_NAME_资源名称NULLYESvarchar4000流程bpmn文件名称
DGRM_RESOURCE_NAME_图片资源名称NULLYESvarchar4000
DESCRIPTION_描述NULLYESvarchar4000
HAS_START_FORM_KEY_拥有开始表单标识NULLYEStinyintNULLstart节点是否存在formKey0否 1是
HAS_GRAPHICAL_NOTATION_拥有图形信息NULLYEStinyintNULL
SUSPENSION_STATE_挂起状态NULLYESintNULL暂停状态 1激活 2暂停
TENANT_ID_租户IDYESvarchar255

注: 1. 业务流程定义数据表。此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_REPROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现。

总结:

image-20220214184634092

流程文件部署主要涉及到3个表,分别是:ACT_GE_BYTEARRAY、ACT_RE_DEPLOYMENT、ACT_RE_PROCDEF。主要完成“部署包”-->“流程定义文件”-->“所有包内文件”的解析部署关系。从表结构中可以看出,流程定义的元素需要每次从数据库加载并解析,因为流程定义的元素没有转化成数据库表来完成,当然流程元素解析后是放在缓存中的。

act_hi_actinst--历史节点表

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NOvarchar64PRI
PROC_DEF_ID_流程定义IDNULLNOvarchar64
PROC_INST_ID_流程实例IDNULLNOvarchar64MUL
EXECUTION_ID_执行实例IDNULLYESvarchar64
ACT_ID_节点IDNULLNOvarchar255
TASK_ID_任务IDNULLYESvarchar64任务实例ID 其他节点类型实例ID在这里为空
CALL_PROC_INST_ID_调用外部的流程实例IDNULLYESvarchar64
ACT_NAME_节点名称NULLYESvarchar255
ACT_TYPE_节点类型NULLNOvarchar255如startEvent、userTask
ASSIGNEE_签收人NULLYESvarchar255经办人
START_TIME_开始时间NULLNOdatetimeNULLMUL
END_TIME_结束时间NULLYESdatetimeNULLMUL
DURATION_耗时NULLYESbigintNULL毫秒值
TENANT_ID_多租户YESvarchar255

注: 1. 历史活动信息。这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容。 2. TENANT_ID 是后续才加入的多租户

历史任务流程实例信息 :act_hi_taskinst

act_hi_taskinst--历史任务流程实例信息

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NULLNOvarchar64PRI
PROC_DEF_ID_流程实例IDNULLYESvarchar64
TASK_DEF_KEY_任务节点定义IDNULLYESvarchar255任务定义标识(环节ID)
PROC_INST_ID_流程实例IDNULLYESvarchar64MUL
EXECUTION_ID_执行实例IDNULLYESvarchar64
NAME_任务名称NULLYESvarchar255
PARENT_TASK_ID_父任务节点IDNULLYESvarchar64
DESCRIPTION_描述NULLYESvarchar4000
OWNER_被代理人NULLYESvarchar255委托人(默认为空,只有在委托时才有值)
ASSIGNEE_经办人NULLYESvarchar255
START_TIME_开始时间NULLNOdatetimeNULL
CLAIM_TIME_签收时间NULLYESdatetimeNULL
END_TIME_结束时间NULLYESdatetimeNULL
DURATION_耗时NULLYESbigintNULL
DELETE_REASON_删除原因NULLYESvarchar4000删除原因(completed,deleted)
PRIORITY_优先级NULLYESintNULL
DUE_DATE_截止时间NULLYESdatetimeNULL过期时间,表明任务应在多长时间内完成
FORM_KEY_FORM表单的KEYNULLYESvarchar255desinger节点定义的form_key属性
CATEGORY_分类NULLYESvarchar255
TENANT_ID_多租户YESvarchar255

注: 1. 历史任务实例表。 2. 存放已经办理的任务。 3. CATEGORY和TNANT_ID是后续版本才加进来的。

注意:act_hi_taskinst只记录usertask内容。

act_ru_variable--流程变量数据表

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NULLNOvarchar64PRI
REV_版本号NULLYESvarcharNULL
TYPE_类型NULLNOvarchar255version
NAME_名称NULLNOvarchar255见备注
EXECUTION_ID_执行实例IDNULLYESvarchar64MUL(ACT_RU_EXECUTION)
PROC_INST_ID_流程实例IDNULLYESvarchar64MUL(ACT_RU_EXECUTION)
TASK_ID_任务IDNULLYESvarchar64MUL(ACT_RU_TASK)
BYTEARRAY_ID_资源IDNULLYESvarchar64MUL(ACT_GE_BYTEARRAY)
DOUBLE_浮点值NULLYESdoubleNULL存储变量类型为Double
LONG_长整型NULLYESbigintNULL存储变量类型为long
TEXT_文本值NULLYESvarchar4000存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class
TEXT2_文本值NULLYESvarchar4000此处存储的是JPA持久化对象时,才会有值。此值为对象ID

注: 1.运行时流程变量数据表。 2.类型:jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、

CustomVariableType、date、double、integer、long、null、short、string

act_hi_varinst--历史变量表

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NULLNOvarchar64PRI
PROC_INST_ID_流程实例IDNULLYESvarchar64MUL
EXECUTION_ID_执行实例IDNULLYESvarchar64
TASK_ID_任务IDNULLYESvarchar64MUL
NAME_名称NULLNOvarchar255MUL
VAR_TYPE_变量类型NULLYESvarchar100
REV_版本号NULLYESintNULLversion
BYTEARRAY_ID_字节流IDNULLYESvarchar64ACT_GE_BYTEARRAY
DOUBLE_浮点值NULLYESdoubleNULL存储变量类型为Double
LONG_长整型NULLYESbigintNULL存储LongType类型的数据
TEXT_文本值NULLYESvarchar4000存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class
TEXT2_文本值NULLYESvarchar4000
CREATE_TIME_创建时间NULLYESdatetimeNULL
LAST_UPDATED_TIME_最后更新时间NULLYESdatetimeNULL

注:

  1. 主要存放历史变量数据。

act_hi_procinst--流程实例历史

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NULLNOvarchar64PRI
PROC_INST_ID_流程实例IDNULLNOvarchar64UNI
BUSINESS_KEY_业务标识NULLYESvarchar255MUL业务主键,业务表单的ID
PROC_DEF_ID_流程实例IDNULLNOvarchar64
START_TIME_开始时间NULLNOdatetimeNULL
END_TIME_结束时间NULLYESdatetimeNULL
DURATION_耗时NULLYESbigintNULL
START_USER_ID_流程发起人IDNULLYESvarchar255
START_ACT_ID_开始节点IDNULLYESvarchar255
END_ACT_ID_结束节点IDNULLYESvarchar255
SUPER_PROCESS_INSTANCE_ID_父流程实例IDNULLYESvarchar64
DELETE_REASON_删除原因NULLYESvarchar4000
NAME_名称NULLYESvarchar255
TENANT_ID_多租户YESvarchar255

注: 1.核心表之一。 2.存放历史的流程实例。 3.设计历史流程实例表的初衷之一就是为了使得运行时库数据量尽可能小,效率最优。

act_hi_identitylink--历史流程人员表

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NOvarchar64PRI
GROUP_ID_用户组IDNULLYESvarchar255
TYPE_类型NULLYESvarchar255类型,主要分为以下几种:assignee、candidate、owner、starter 、participant
USER_ID_用户IDNULLYESvarchar255MUL
TASK_ID_任务IDNULLYESvarchar64MUL
PROC_INST_ID_流程实例IDNULLYESvarchar64MUL

注:

  1. 任务参与者数据表。主要存储当前节点参与者的信息。

**备注:**TYPE_ :该关系数据的类型,当前提供了 个值 assignee、candidate和owner 表示流程数据的指派人(组〉、候选人(组)和拥有人

act_ru_identitylink--运行时流程人员表

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NOvarchar64PRI
REV_版本号NULLYESintNULLversion
GROUP_ID_用户组IDNULLYESvarchar255MUL
TYPE_类型NULLYESvarchar255
USER_ID_用户IDNULLYESvarchar255MUL
TASK_ID_任务IDNULLYESvarchar64MUL(ACT_RU_TASK)
PROC_INST_ID_流程实例IDNULLYESvarchar64MUL(ACT_RU_EXECUTION)
PROC_DEF_ID_流程定义IDNULLYESvarchar64MUL(ACT_RE_PROCDEF)

注: 1.任务参与者数据表。主要存储当前节点参与者的信息。

act_ru_task--运行时任务节点表

字段字段名称字段默认值是否允许为空数据类型字段长度备注
ID_主键NULLNOvarchar64PRI
REV_版本号NULLYESintNULLversion
EXECUTION_ID_执行实例IDNULLYESvarchar64MUL(ACT_RU_EXECUTION)
PROC_INST_ID_流程实例IDNULLYESvarchar64MUL(ACT_RU_EXECUTION)
PROC_DEF_ID_流程定义IDNULLYESvarchar64MUL(ACT_RE_PROCDEF)
NAME_名称NULLYESvarchar255
PARENT_TASK_ID_父任务IDNULLYESvarchar64
DESCRIPTION_描述NULLYESvarchar4000
TASK_DEF_KEY_人物定义标识NULLYESvarchar255
OWNER_被代理人NULLYESvarchar255(一般情况下为空,只有在委托时才有值)
ASSIGNEE_经办人NULLYESvarchar255签收人或者委托人
DELEGATION_委托状态NULLYESvarchar64委托状态 PENDING委托中,RESOLVED已处理
PRIORITY_优先级NULLYESintNULL
CREATE_TIME_创建时间NULLYEStimestampNULL
DUE_DATE_截止时间NULLYEStimestampNULL
CATEGORY_分类NULLYESvarchar255
USPENSION_STATE_挂起状态NULLYESvarcharNULL暂停状态 1激活 2暂停
TENANT_ID_租户IDYESvarchar255
FORM_KEY_表单标识NULLYESvarchar255

注: 1.运行时任务数据表


全部评论: 0

    我有话说: