工作流表设计
1. 流程管理
workflows
表
用于存储所有的工作流信息。
CREATE TABLE `workflows` (
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`name` VARCHAR(255) NOT NULL COMMENT '工作流名称',
`description` TEXT COMMENT '工作流描述',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) COMMENT='工作流表';
workflow_steps
表
用于存储每个工作流的步骤。
CREATE TABLE `workflow_steps` (
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`workflow_id` INT NOT NULL COMMENT '关联的工作流ID',
`step_name` VARCHAR(255) NOT NULL COMMENT '步骤名称',
`step_order` INT NOT NULL COMMENT '步骤顺序',
`assigned_role` VARCHAR(255) COMMENT '分配的角色',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (`workflow_id`) REFERENCES `workflows`(`id`) ON DELETE CASCADE
) COMMENT='工作流步骤表';
2. 表单管理
forms
表
用于存储所有表单的信息。
CREATE TABLE `forms` (
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`name` VARCHAR(255) NOT NULL COMMENT '表单名称',
`description` TEXT COMMENT '表单描述',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) COMMENT='表单表';
form_fields
表
用于存储每个表单的字段。
CREATE TABLE `form_fields` (
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`form_id` INT NOT NULL COMMENT '关联的表单ID',
`field_name` VARCHAR(255) NOT NULL COMMENT '字段名称',
`field_type` VARCHAR(255) NOT NULL COMMENT '字段类型',
`is_required` BOOLEAN DEFAULT FALSE COMMENT '是否必填',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (`form_id`) REFERENCES `forms`(`id`) ON DELETE CASCADE
) COMMENT='表单字段表';
3. 流程监控
workflow_instances
表
用于存储每个工作流实例的状态。
CREATE TABLE `workflow_instances` (
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`workflow_id` INT NOT NULL COMMENT '关联的工作流ID',
`status` VARCHAR(255) NOT NULL COMMENT '实例状态',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (`workflow_id`) REFERENCES `workflows`(`id`) ON DELETE CASCADE
) COMMENT='工作流实例表';
workflow_instance_steps
表
用于存储每个工作流实例的步骤状态。
CREATE TABLE `workflow_instance_steps` (
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`workflow_instance_id` INT NOT NULL COMMENT '关联的工作流实例ID',
`step_id` INT NOT NULL COMMENT '关联的步骤ID',
`status` VARCHAR(255) NOT NULL COMMENT '步骤状态',
`started_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '步骤开始时间',
`completed_at` TIMESTAMP NULL COMMENT '步骤完成时间',
FOREIGN KEY (`workflow_instance_id`) REFERENCES `workflow_instances`(`id`) ON DELETE CASCADE,
FOREIGN KEY (`step_id`) REFERENCES `workflow_steps`(`id`) ON DELETE CASCADE
) COMMENT='工作流实例步骤表';
form_submissions
表
用于存储表单的提交信息。
CREATE TABLE `form_submissions` (
`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`form_id` INT NOT NULL COMMENT '关联的表单ID',
`submitted_by` INT NOT NULL COMMENT '提交者ID',
`submission_data` TEXT NOT NULL COMMENT '提交的数据',
`submitted_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '提交时间',
FOREIGN KEY (`form_id`) REFERENCES `forms`(`id`) ON DELETE CASCADE
) COMMENT='表单提交表';
关系图
- 一个工作流 (
workflows
) 可以有多个步骤 (workflow_steps
)。 - 一个表单 (
forms
) 可以有多个字段 (form_fields
)。 - 一个工作流实例 (
workflow_instances
) 可以有多个实例步骤 (workflow_instance_steps
)。 - 一个表单 (
forms
) 可以有多个提交 (form_submissions
)。
这些表结构可以满足基本的流程管理、表单管理和流程监控的需求。根据具体业务需求,可能需要进一步调整和扩展。