德玛西亚之WorkFlow(四)数据库设计
在流程的产生、执行及结束等周期,都会产生各种与流程相关的数据, Activiti 提供了一整套数据表来保存这些数据。 Activiti 流程引擎的数据表分 大类,每 类的数据表均有不同的职责 例如运行时数据表,专门用来记录流程运行时所产生的数据:身份数据表专门保存身份数据,包括用户、用户组等 Activiti 为这些数据表的命名制定了规范,不同职责的数据表,均可以通过命名来体现 例如运行时数据表,会以 ACT RU 作为开头:历史数据表以 ACT HI 作为开头。
1 通用数据表
通用数据表用于存放一些通用的数据,这些表本身不关心特定的流程或者业务,只用于存放这些业务或者流程所使用的通用资源。它们可以独立存在于流程引擎或者应用系统中,其他的数据表有可能会使用这些表中的数据。通用数据表有两个,它们都以“ACT GE 开头,GE 是单词 general 的缩写。
1.1 资源表
表 ACT_GE_BYTEARRAY 用于保存与流程引擎相关的资源,只要调用了 Activiti 存储服务的 API ,涉及的资源均会被转换为 byte 数组保存到这个表中。在资源表中设计了一个 BYTES宇段,用来保存资源的内容,因此理论上其可以用于保存任何类型的资源(文件或者其他来源的输入流)。一般情况下, Activiti 使用这个表来保存字符串、流程文件的内容、流程图片内容。ACT GE BYTEARRAY 表主要包含如下字段。
REV_ :数据版本, Activiti为一些有可能会被频繁修改的数据表,加入该字段,用来表示该数据被操作的次数。
NAME_ :资源名称,类型为 varchar ,长度为 255 字节。
DEPLOYMENT_ID_ :一次由曙可以励口多个资源,该字段与剖曙表ACT_RE_DEPLOYMENT的主键相关联。BYTES_ :资源内容,数据类型为 longblob ,最大可存 4GB 数据。
GENERATED_:是否由 Activiti 自动产生的资源, 0表示 false, 1为true。
1.2 属性表
Activiti 将全部的属性抽象为 key-value 对,每个属性都有名称和值, 使用ACT_GE_PROPERTY 来保存这些属性,该表有以下 个字段。
NAME_ :属性名称, varchar 类型。
VALUE_ :属性值, varchar 类型。
REV_ :数据的版本号。
2 部署数据表
流程引擎使用仓储表来保存流程定义和部署信息这类数据,存储表名称以“ACT RE ”开头,“RE”是 repository单词的缩写。
2.1 部署数据表
在 Activiti 中,一次部署可以添加多个资源,资源会保存到资源表中,而对于部署,则部署信息会被保存到部署表中,部署表名称为 ACT_RE_DEPLOYMENT,该表主要包含以下字段。
NAME_ :部署的名称,可以调用 Activiti 的流程存储 API 来设置,类型为 varchar,长度为 255 字节。DEPLOY_TIME_ :部署时间,类型为 timestamp。
以上 段,除了 NAME 可以不设置值外 其他宇段在数据写入时必须设置值。
2.2 流程定义表
Activiti 在部署添加资源时,如果发布部署的文件是流程文件( .bprnn 或者.BPMN 20.xml),则除了会解析这些