• Flowable-6.7.2:数据库详情


    scx123

    Flowable(二):数据库详情

    红色文字描述代表当前描述未确认

    橘色文字描述代表当前描述存在争议

    绿色文字描述代表当前描述已考证

    一、数据驱动详情

    (1)数据库软件类型

    内置对H2Base、MySQL的良好支持。

    (2)数据驱动模式

    对于Flowable来说,其本身是采用Liquibase 来管理数据库模式

    二、数据表详情

    (1)数据表分类标准

    Flowable数据表定义趋于常规。按照OMG国际惯例制定的流程XML标准内容进行分类,Flowable数据表分为三类:

    (1)第一类:遵循BPMN协议(或者说遵循BPMN规范)的流程数据表。

    (2)第二类:遵循CMMN协议(或者说遵循CMMN规范)的流程数据表。

    (3)第三类:遵循DMN协议(或者说遵循DMN规范)的流程数据表。

    (2)数据表命名规则

    与 Flowable 开源代码库相关的数据库表名以**ACT _**开头。**特定于 Flowable Work 或 Engage 的数据库表以FLW _**前缀开头。

    Flowable数据表命名主要分为三大规则,每一个数据表的命名基本可以拆卸为三个部分,每一个部分对应一个规则。

    第一部分大多数均以ACT开头,这个缘由可以看小字部分,主要也是为了兼容Activiti的迁移,这也是第一个命名规则。

    第二部分是说明表用途的两字符标示符。服务API的命名也大略符合这个规则,这也是第二个命名规则。

    第三部分就是根据具体的业务分类,这是第三个命名规则。

    所以,综上所述,就能知道,ACT代表的Activiti;FLW顾名思义就是Flowable了,FLW开头的表也有一些,等遇到了再做解释。

    Flowable源自于Activiti,所以很多数据表都是一个套路,可以参考Activiti

    Flowable 是 Activiti 的一个分支,原来技术成员都是Activiti 归属企业 Alfresco 的成员。

    后来大牛跟企业又出现分歧,小暴脾气又独立门户了,就有了Flowable,所以Flowable与Activiti有很多类似的地方。

    (3)数据表作用分类

    (1)常用模式:待更新

    (2)辅助数据表:待更新

    (3)通用数据表:原始数据库表(如 BPMN 和 IDM 的表)使用 Flowable 模式和脚本进行版本管理。较新的引擎和表使用 Liquibase 进行表版本控制。有两个与数据库模式管理相关的 Liquibase 表:(简单说的话就是看后缀)

    • <前缀> _ DATABASECHANGELOG:Liquibase 使用此表来跟踪哪些变更集已运行。
    • <前缀> _ DATABASECHANGELOGLOCK:Liquibase 使用此表来确保一次仅运行一个 Liquibase 实例。

    注意: 是一个基于 Java 的框架,用于跟踪数据库模式的变化。

    (4)数据表介绍

    **ACT_APP_ *** 类型表:ACT_APP顾名思义就是activiti的应用的表,这种表(表第二部分不含有CMMN或者是DMN)属于BPMN类型的数据表。

    表名作用版本
    ACT_APP_APPDEF应用模型定义数据表,应用程序模型产生应用程序定义。此定义,如流程/案例/等。是成功部署到应用引擎的应用模型的表示6.7.2
    ACT_APP_DEPLOMENT应用部署表,当通过应用引擎部署应用模型时,会存储一条记录以指示此部署**。部署的实际内容被引用*存储ACT_APP_DEPLOYMENT_RESOURCE表中*。6.7.2
    ACT_APP_DEPLOMENT_RESOURCE应用部署资源表,此表包含构成应用程序部署的实际资源(存储为字节)**。**当引擎需要实际模型时,将从该表中获取资源。6.7.2
    ACT_APP_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
    ACT_APP_DATABASECHANGELOGLiquibase执行的记录6.7.2

    **ACT_CMMN_ * ** 类型表:CMMN-表示案例管理模型和符号,与BPMN协议一致,也是一种流程内容的规范。这类表用于存储处理BPMN不所能适用的业务场景数据,通常与BPMN搭配适用,前提是符合CMMN规范的模型的数据才会涉及到适用这类表。ACT_CMMN_RU_ * :RU代表运行时。这些是包含案例实例、计划项等的运行时数据的运行时表。Flowable 仅在案例实例执行期间存储运行时数据,并在案例实例结束时删除记录。这使运行时表保持小且查询速度快。

    表名作用版本
    ACT_CMMN_CASEDEFCMMN流程用例定义6.7.2
    ACT_CMMN_DATABASECHANGELOGLiquibase执行的记录6.7.2
    ACT_CMMN_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
    ACT_CMMN_DEPLOMENTCMMN流程部署表6.7.2
    ACT_CMMN_HI_CASE_INSTCMMN流程历史用例实例表6.7.2
    ACT_CMMN_HI_MIL_INST此表包含在案例实例中达到的每个里程碑的条目6.7.2
    ACT_CMMN_HI_PLAN_ITEM_INST此表包含作为案例实例执行的一部分创建的每个计划项目实例的条目6.7.2
    ACT_CMMN_RU_CASE_INST此表包含每个已启动但尚未完成的案例实例的条目。6.7.2
    ACT_CMMN_RU_MIL_INST此表包含作为运行案例实例的一部分达到的每个里程碑的条目。6.7.2
    ACT_CMMN_RU_PLAN_ITEM_INST案例实例执行由案例定义中定义的计划项目的多个实例组成。此表包含在案例实例执行期间创建的每个实例的条目。6.7.2
    ACT_CMMN_RU_SENTRY_PART_INST计划项目实例可以有守卫状态转换的哨兵。这样的哨兵可以包含在状态改变发生之前需要满足的多个部分。此表存储满足的此类哨兵的任何部分。6.7.2

    **ACT_CO_ * ** 类型表:内容引擎数据表。

    内容引擎用于存储和查询内容。内容可以是文档、图像等。

    表名作用版本
    ACT_CO_CONTENT_ITEM每项内容在此表中都有一个条目6.7.2
    ACT_CO_DATABASECHANGELOGLiquibase执行的记录6.7.2
    ACT_CO_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2

    ACT_DMN_ * ** 类型表:Flowable DMN的数据库名称都以ACT_DMN_**开头,DMN决策表。

    表名作用版本
    ACT_DMN_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
    ACT_DMN_DATABASECHANGELOGLiquibase执行的记录6.7.2
    ACT_DMN_DECISION此表包含已部署决策表的元数据,并与其他引擎的定义相对应6.7.2
    ACT_DMN_DEPLOMENT决策部署表6.7.2
    ACT_DMN_DEPLOMENT_RESOURCE决策部署涉及资源表6.7.2
    ACT_DMN_HI_DECISION_EXECUTION此表包含有关 DMN 决策表执行的审计信息6.7.2

    **ACT_EVT_ * ** 类型表:EVT代表event事件

    表名作用版本
    ACT_EVT_LOG事件日志表6.7.2

    **ACT_FO_ * ** 类型表:FO-表示form(表格表)。

    表名作用版本
    ACT_FO_DATABASECHANGELOGLiquibase执行的记录6.7.2
    ACT_FO_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
    ACT_FO_FORM_DEFINITION表格定义表6.7.2
    ACT_FO_FORM_DEPLOYMENT表格部署表6.7.2
    ACT_FO_FORM_INSTANCE表格实例表6.7.2
    ACT_FO_FORM_RESOURCE表格资源表6.7.2

    **ACT_GE_ * ** 类型表:GE 代表通用数据,用于各种用例。

    表名作用版本
    ACT_GE_BYTEARRAY保存和流程引擎相关的资源,只要调用了Activiti存储服务的API,涉及的资源均会被转换为byte数组保存到这个表中,部署几次就会有几条记录6.7.2
    ACT_GE_PROPERTY流程全部的属性抽象为key-value对,每个属性都有名称和值。6.7.2

    *ACT_HI_ ** 类型表:HI表示history。(10张表)就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。

    表名作用版本
    ACT_HI_ACTINST流程实例历史6.7.2
    ACT_HI_ATTACHMENT实例的历史附件(几乎不会使用,会加大数据库很大的一个loading)6.7.2
    ACT_HI_COMMENT实例的历史备注6.7.2
    ACT_HI_DETAIL历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。6.7.2
    ACT_HI_ENTITYLINK历史流程人员表,任务参与者数据表,主要存储历史节点参与者的信息。6.7.2
    ACT_HI_INDENTITYLINK实例节点中,如果指定了目标人,产生的历史6.7.2
    ACT_HI_PROCINST流程实例历史6.7.2
    ACT_HI_TASKINST流程实例的任务历史。6.7.2
    ACT_HI_TSK_LOG来跟踪用户/人工任务发生的更改。(在任务的受让人、所有者或例如到期日期发生变化时创建。默认情况下,用户/人工任务日志记录是禁用的,enableHistoricTaskLogging 属性可以启用)6.7.2
    ACT_HI_VARINST流程实例的变量历史。6.7.2

    **ACT_ID_ *** 类型表: ID表示identity(组织机构)。(9张表)这些表包含标识的信息,如用户,用户组,等等。

    表名作用版本
    ACT_ID_BYTEARRAY6.7.2
    ACT_ID_GROUP此表包含系统中定义的每个组的条目。6.7.2
    ACT_ID_INFO此表存储有关用户的非结构化数据,这些数据未存储在FLW _ ID _ USER表中。6.7.2
    ACT_ID_MEMBERSHIP此表映射用户和组之间的关系。也就是说,哪些用户属于哪些组6.7.2
    ACT_ID_PRIV权限表6.7.2
    ACT_ID_PRIV_MAPPING用户组和权限之间的关系6.7.2
    ACT_ID_PROPERTY用户或者用户组属性拓展表6.7.2
    ACT_ID_TOKEN当用户成功登录时,令牌将作为会话数据的一部分存储。集群中的每台服务器都可以查询这个数据库表来协调每台服务器上的用户会话。6.7.2
    ACT_ID_USER此表包含系统中定义的每个用户的条目。6.7.2

    **ACT_RE_ * ** 类型表:RE-表示repository(存储)。这类表是由RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如流程定义,流程的资源

    (图片,规则等)。

    表名作用版本
    ACT_GE_BYTEARRAY保存和流程引擎相关的资源,只要调用了Activiti存储服务的API,涉及的资源均会被转换为byte数组保存到这个表中,部署几次就会有几条记录6.7.2
    ACT_GE_PROPERTY流程全部的属性抽象为key-value对,每个属性都有名称和值。6.7.2

    **ACT_RU_ * **类型表:RU表示runtime。(15张表)这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。

    表名作用版本
    ACT_RU_ACTINST流程实例中**的每个活动在此表中都有一行来指示活动的当前状态。6.7.2
    ACT_RU_DEADLETTER_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
    ACT_RU_ENTITYLINK此表存储有关实例的父子关系的信息。例如,如果流程实例启动子案例实例,则此关系存储在此表中。这样可以轻松查询关系。6.7.2
    ACT_RU_EVENT_SUBSCR当流程定义使用事件(信号/消息/等或启动/中间/边界)时,引擎将对该表的引用存储在此表中。这简化了查询哪些实例正在等待某种类型的事件6.7.2
    ACT_RU_EXECUTION存储流程实例和指向流程实例当前状态的指针(称为执行)6.7.2
    ACT_RU_EXTERNAL_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
    ACT_RU_HISTORY_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
    ACT_RU_IDENTITYLINK此表存储有关用户或组的数据及其与(流程/案例/等)实例相关的角色。该表也被其他需要身份链接的引擎使用。6.7.2
    ACT_RU_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
    ACT_RU_SUSPENDED_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
    ACT_RU_TASK此表包含一个正在运行的实例的每个未完成用户任务的条目。然后在查询用户的任务列表时使用此表。CMMN 引擎也使用此表6.7.2
    ACT_RU_TIMER_JOBFlowable 引擎使用作业表来实现异步逻辑、计时器或历史处理。这些表存储每个作业所需的数据。6.7.2
    ACT_RU_VARIABLE此表存储与实例相关的变量。CMMN 引擎也使用此表。6.7.2

    *FLW_ ** 类型表:FLW表示flowable

    表名作用版本
    FLW_CHANNEL_DEFINITION泳池管道定义表6.7.2
    FLW_EV_DATABASECHANGELOGLiquibase执行的记录6.7.2
    FLW_EV_DATABASECHANGELOGLOCKLiquibase执行锁6.7.2
    FLW_EVENT_DEFINITION已部署事件定义的元数据6.7.2
    FLW_EVENT_DEPLOYMENT已部署事件部署元数据6.7.2
    FLW_EVENT_RESOURCE事件所需资源6.7.2
    FLW_RU_BATCH迁移业务流程实例并非易事,但Flowable提供了迁移复杂流程的高级功能,也可以在批处理和测试模式下迁移,这张表用于处理批量迁移详情6.7.2
    FLW_RU_BATCH_PART批量数据迁移模块6.7.2

    未完待续,更多内容:尽在码农修炼笔记

  • 相关阅读:
    [SQL | MyBatis] MyBatis 简介
    Java新特性与性能调优
    Linux:进程状态和优先级
    【云原生K8S】Kubernetes资源管理
    2022年最新贵州建筑八大员(机械员)模拟考试题库及答案
    小黑跟中老黑和阿黄吃了烤蚕蛹知了,喝了阿黄带来的茅台,耳机又莫名其妙第丢了逐渐减少内耗的leetcode之旅:714. 买卖股票的最佳时机含手续费
    知识库网站如何搭建?需要注意这五个要点!
    《Java 算法与数据结构》第 2 章:数组
    LeetCode100122. Separate Black and White Balls
    《java核心卷Ⅰ》知识点总结(可作面试题)
  • 原文地址:https://blog.csdn.net/weixin_44085593/article/details/126427128