限制:允许定义多个工作流,但每个条工作流的两个节点间仅允许【同意】、【拒绝】两种选择。无法支持动态N无限分支的情况。
sql
CREATE TABLE IF NOT EXISTS `Workflow` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID,自增主键',
`name` VARCHAR(100) NOT NULL COMMENT '工作流名称',
PRIMARY KEY (`id`)
) COMMENT='工作流表_工作流定义(没啥大用,只是定义表)';
CREATE TABLE IF NOT EXISTS `Workflow_schema` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID,自增主键',
`workflowId` VARCHAR(100) NOT NULL COMMENT 'Workflow 外建',
`status` TINYINT DEFAULT 1 COMMENT '状态',
`operation_authority_scope` TINYINT DEFAULT 1 COMMENT '允许执行的权限(多个逗号分隔)',
`agree_to_id` INT NOT NULL COMMENT '同意后的下个流程,Workflow_schema 外建,指向本表',
`reject_to_id` INT NOT NULL COMMENT '拒绝后的下个流程,Workflow_schema 外建,指向本表',
`index` INT NOT NULL default 1 COMMENT '排序号',
PRIMARY KEY (`id`)
) COMMENT='工作流表_工作流流程字典';
CREATE TABLE IF NOT EXISTS `BussinessData` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID,自增主键',
`data1` VARCHAR(50) NOT NULL COMMENT 'data1',
`data2` VARCHAR(100) NOT NULL COMMENT 'data2',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) COMMENT='业务数据表';
CREATE TABLE IF NOT EXISTS `BussinessData_Workflow` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'ID,自增主键',
`parentId` VARCHAR(50) NOT NULL COMMENT 'BussinessData 外建',
`workflowId` VARCHAR(50) NOT NULL COMMENT 'Workflow 外建,配合 status,能便找到Workflow_schema信息的唯一记录',
`status` TINYINT DEFAULT 1 COMMENT '状态(冗余字段)',
`operation_authority` TINYINT DEFAULT 1 COMMENT '执行的权限(具体执行的权限),即该值必须在Workflow_schema 表 operation_authority_scope的范围内',
`operation_user` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '执行人',
`operation_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '执行时间',
PRIMARY KEY (`id`)
) COMMENT='业务数据-实际工作流表';