首页 > 其他分享 >工作流表设计

工作流表设计

时间:2024-07-10 18:12:10浏览次数:12  
标签:COMMENT workflow 流表 CURRENT 工作 TIMESTAMP 设计 NULL id

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)。

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

标签:COMMENT,workflow,流表,CURRENT,工作,TIMESTAMP,设计,NULL,id
From: https://www.cnblogs.com/zxingduo/p/18294740

相关文章

  • 【NOI】C++算法设计入门之贪心
    文章目录前言一、概念1.导入2.概念2.1贪心算法的核心思想2.2贪心算法的步骤2.3贪心算法的应用场景二、例题讲解问题:1372.活动选择问题:1456.淘淘捡西瓜问题:1551-任务调度问题:1561.买木头三、总结五、感谢前言贪心算法,如同成语"得陇望蜀"所描述的那样,总是......
  • 滤波器设计
    1.数字滤波器类型1.1FIR滤波器(有限冲激响应滤波器)FIR滤波器的输出只依赖于当前和过去有限个输入样本,其冲激响应在有限时间内结束。FIR滤波器的优点包括:线性相位特性固定长度的滤波器系数总是稳定的FIR滤波器的基本形式为:其中,h[k]是滤波器系数,x[n]是输入信号,y[n]是......
  • 设计模式使用场景实现示例及优缺点(创建型模式——单例模式、建造者模式、原型模式)
    创建型模式单例模式(SingletonPattern)单例模式(SingletonPattern)在Java中的使用场景与在其他编程语言中类似,其主要目的是确保一个类只有一个实例,并提供一个全局的访问点。以下是单例模式的一些常见使用场景及详细讲解:使用场景控制资源的使用:数据库连接池:数据库连接是......
  • 设计模式使用场景实现示例及优缺点(结构型模式——代理模式、外观模式)
    结构型模式代理模式(ProxyPattern)代理模式(ProxyPattern)是一种结构型设计模式,它通过引入一个代理对象来控制对另一个对象的访问。这个代理对象可以为被代理的对象提供额外的功能,例如访问控制、延迟初始化、日志记录、或网络访问等。适用场景远程代理:为一个对象在不同......
  • springboot公寓租赁系统-计算机毕业设计源码03822
    目 录摘要1绪论1.1研究背景与意义1.2选题背景1.3论文结构与章节安排2 公寓租赁系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3系统用例分......
  • Day3| 203.移除链表元素 & 707.设计链表 & 206.反转链表
    前两天发烧了,这几天没更的后续会补齐链表结构如下classListNode{intval;ListNodenext;ListNode(){}ListNode(intval){this.val=val;}ListNode(intval,ListNodenext){this.val=val;this.next......
  • Java计算机毕业设计生鲜仓储管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着生鲜电商的蓬勃发展和消费者对食品新鲜度、安全性的日益重视,生鲜仓储管理成为了保障供应链顺畅与产品质量的关键环节。然而,传统的生鲜仓储管理模......
  • 基于springboot+layui+thymeleaf的学生成绩管理系统设计与实现(源码+SQL+使用说明)
    本项目适合做计算机相关专业的毕业设计,课程设计,技术难度适中、工作量比较充实。完整资源获取点击下载完整资源1、资源项目源码均已通过严格测试验证,保证能够正常运行;2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;3、本项目比较适合计算......
  • 基于SpringBoot + SpringCloud+ElasticSear的在线教育管理系统设计与实现(MySQL、Mongo
    本项目适合做计算机相关专业的毕业设计,课程设计,技术难度适中、工作量比较充实。完整资源获取点击下载完整资源1、资源项目源码均已通过严格测试验证,保证能够正常运行;2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;3、本项目比较适合计算......
  • 单机版的食品管理系统设计与实现GUI图形界面(学之余版权所有)
    单机版的食品管理系统设计与实现摘要:本论文旨在设计并实现一个单机版的食品管理系统。通过使用Java语言和相关技术,以食品管理为核心功能,实现了用户登录、食品浏览、新增、删除和修改等操作。该系统可以分为管理员和非管理员两类用户,管理员拥有对食品进行增删改查的权限,而非......