在Flowable中,表设计指的是数据库中用于存储流程实例、任务、变量、历史记录等信息的表结构。Flowable使用一系列的数据库表来存储和管理BPMN 2.0流程定义和实例的状态。以下是一些主要的表及其用途:
1. 流程定义表(ACT_RE_)
ACT_RE_DEPLOYMENT
:部署信息表,存储流程部署的元数据。ACT_RE_PROCDEF
:流程定义表,存储BPMN 2.0流程定义的详细信息。
2. 流程运行时表(ACT_RU_)
ACT_RU_EXECUTION
:执行实例表,存储流程实例和执行流的信息。ACT_RU_TASK
:任务表,存储用户任务的信息。ACT_RU_VARIABLE
:变量表,存储流程变量。ACT_RU_JOB
:作业表,存储定时作业信息。ACT_RU_EVENT_SUBSCR
:事件订阅表,存储事件订阅信息。
3. 历史表(ACT_HI_)
ACT_HI_PROCINST
:流程实例历史表,存储流程实例的历史信息。ACT_HI_ACTINST
:活动实例历史表,存储活动的历史信息。ACT_HI_TASKINST
:任务实例历史表,存储任务的历史信息。ACT_HI_DETAIL
:历史详情表,存储历史变量和详情。ACT_HI_COMMENT
:历史评论表,存储任务和流程实例的评论。
4. 身份信息表(ACT_ID_)
ACT_ID_USER
:用户表,存储用户信息。ACT_ID_GROUP
:组表,存储用户组信息。ACT_ID_MEMBERSHIP
:成员关系表,存储用户和用户组的关系。
5. 通用数据表(ACT_GE_)
ACT_GE_BYTEARRAY
:二进制数据表,存储部署文件和流程定义图片等。ACT_GE_PROPERTY
:属性表,存储Flowable的属性信息。
表结构设计示例
以下是一个简单的表结构设计示例:
CREATE TABLE ACT_RE_PROCDEF (
ID_ varchar(64) NOT NULL,
CATEGORY_ varchar(255),
NAME_ varchar(255),
KEY_ varchar(255) NOT NULL,
VERSION_ int NOT NULL,
DEPLOYMENT_ID_ varchar(64),
RESOURCE_NAME_ varchar(4000),
DGRM_RESOURCE_NAME_ varchar(4000),
DESCRIPTION_ varchar(4000),
HAS_START_FORM_KEY_ bit,
SUSPENSION_STATE_ int,
TENANT_ID_ varchar(255) default '',
ENGINE_VERSION_ varchar(255),
PRIMARY KEY (ID_)
);
CREATE TABLE ACT_RU_EXECUTION (
ID_ varchar(64) NOT NULL,
REV_ int,
PROC_INST_ID_ varchar(64),
BUSINESS_KEY_ varchar(255),
PARENT_ID_ varchar(64),
PROC_DEF_ID_ varchar(64),
SUPER_EXEC_ varchar(64),
ACT_ID_ varchar(255),
IS_ACTIVE_ bit,
IS_CONCURRENT_ bit,
IS_SCOPE_ bit,
IS_EVENT_SCOPE_ bit,
SUSPENSION_STATE_ int,
CACHED_ENT_STATE_ int,
TENANT_ID_ varchar(255) default '',
NAME_ varchar(255),
LOCK_TIME_ timestamp,
PRIMARY KEY (ID_)
);
-- 更多表定义...
注意事项
- Flowable支持多种数据库,表结构会根据所选数据库类型有所不同。
- 在创建表时,需要考虑字符集和排序规则,以确保国际化支持。
- Flowable会自动创建这些表,通常不需要手动创建,除非有特殊需求。
- 在进行表设计时,应该遵循数据库设计最佳实践,如使用适当的索引来提高查询性能。
在实施Flowable时,通常不需要手动修改这些表结构,因为Flowable会自动管理这些表。但是,了解这些表的结构和它们之间的关系对于故障排除和深入理解Flowable的工作原理非常有帮助。