工作流表设计

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='表单提交表';

关系图

  1. 一个工作流 (workflows) 可以有多个步骤 (workflow_steps)。
  2. 一个表单 (forms) 可以有多个字段 (form_fields)。
  3. 一个工作流实例 (workflow_instances) 可以有多个实例步骤 (workflow_instance_steps)。
  4. 一个表单 (forms) 可以有多个提交 (form_submissions)。

这些表结构可以满足基本的流程管理、表单管理和流程监控的需求。根据具体业务需求,可能需要进一步调整和扩展。

posted @ 2024-07-10 17:55  xingduo  阅读(57)  评论(0编辑  收藏  举报