smart-water表设计方案

-- =================================================================
-- 2. SOP 管理模块
-- =================================================================-- 2.1 SOP主表 (存储SOP元数据,与版本分离)
CREATE TABLE sops (id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),name VARCHAR(255) NOT NULL,description TEXT,latest_published_version_id UUID, -- 外键约束在版本表创建后添加created_by UUID NOT NULL REFERENCES users(id),created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),updated_by UUID NOT NULL REFERENCES users(id),updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
COMMENT ON TABLE sops IS 'SOP主信息表,存储SOP的基本信息,与版本表分离便于版本管理';
COMMENT ON COLUMN sops.id IS 'SOP主记录唯一标识(GUID)';
COMMENT ON COLUMN sops.name IS 'SOP名称,如"车间设备每日巡检流程"';
COMMENT ON COLUMN sops.latest_published_version_id IS '指向最新发布的SOP版本,快速获取有效版本';
COMMENT ON COLUMN sops.created_by IS '创建者ID,外键引用users表';-- 2.2 SOP版本表 (存储SOP的具体版本定义)
CREATE TABLE sop_versions (id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),sop_id UUID NOT NULL REFERENCES sops(id) ON DELETE CASCADE,version_string VARCHAR(50) NOT NULL,status VARCHAR(20) NOT NULL CHECK (status IN ('Draft', 'Published', 'Archived')),definition JSONB NOT NULL,created_by UUID NOT NULL REFERENCES users(id),created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),published_at TIMESTAMPTZ,UNIQUE (sop_id, version_string)
);
COMMENT ON TABLE sop_versions IS 'SOP版本表,存储SOP的具体版本定义,支持版本追溯与迭代';
COMMENT ON COLUMN sop_versions.sop_id IS '关联的SOP主记录ID,外键引用sops表';
COMMENT ON COLUMN sop_versions.version_string IS '版本号,如"V1.0"、"V2.1-Draft",同一SOP内唯一';
COMMENT ON COLUMN sop_versions.status IS '版本状态:Draft(草稿)、Published(已发布)、Archived(已归档)';
COMMENT ON COLUMN sop_versions.definition IS 'SOP流程定义(JSONB),包含节点、连线及配置信息';
COMMENT ON COLUMN sop_versions.published_at IS '版本发布时间,仅当状态为Published或Archived时有效';-- 关联SOP主表与最新版本,并设置为可延迟,以解决循环依赖问题
ALTER TABLE sopsADD CONSTRAINT fk_sops_latest_versionFOREIGN KEY (latest_published_version_id)REFERENCES sop_versions(id)ON DELETE SET NULL -- 如果版本被删除,仅将此链接置空DEFERRABLE INITIALLY DEFERRED;
COMMENT ON CONSTRAINT fk_sops_latest_version ON sops IS 'SOP主表与最新版本的外键关联。可延迟以方便在同一事务中创建SOP及其首个版本。';

user表 

create table sys_user
(user_id     bigint      not nullconstraint sys_user_pkprimary key,tenant_id   varchar(20)  default '000000'::character varying,dept_id     bigint,user_name   varchar(30) not null,nick_name   varchar(30) not null,user_type   varchar(10)  default 'sys_user'::character varying,email       varchar(50)  default ''::character varying,phonenumber varchar(11)  default ''::character varying,sex         char         default '0'::bpchar,avatar      bigint,password    varchar(100) default ''::character varying,status      char         default '0'::bpchar,del_flag    char         default '0'::bpchar,login_ip    varchar(128) default ''::character varying,login_date  timestamp,create_dept bigint,create_by   bigint,create_time timestamp,update_by   bigint,update_time timestamp,remark      varchar(500) default NULL::character varying
);comment on table sys_user is '用户信息表';comment on column sys_user.user_id is '用户ID';comment on column sys_user.tenant_id is '租户编号';comment on column sys_user.dept_id is '部门ID';comment on column sys_user.user_name is '用户账号';comment on column sys_user.nick_name is '用户昵称';comment on column sys_user.user_type is '用户类型(sys_user系统用户)';comment on column sys_user.email is '用户邮箱';comment on column sys_user.phonenumber is '手机号码';comment on column sys_user.sex is '用户性别(0男 1女 2未知)';comment on column sys_user.avatar is '头像地址';comment on column sys_user.password is '密码';comment on column sys_user.status is '帐号状态(0正常 1停用)';comment on column sys_user.del_flag is '删除标志(0代表存在 1代表删除)';comment on column sys_user.login_ip is '最后登陆IP';comment on column sys_user.login_date is '最后登陆时间';comment on column sys_user.create_dept is '创建部门';comment on column sys_user.create_by is '创建者';comment on column sys_user.create_time is '创建时间';comment on column sys_user.update_by is '更新者';comment on column sys_user.update_time is '更新时间';comment on column sys_user.remark is '备注';alter table sys_userowner to postgres;

SOP管理模块

总和

-- 2.1 SOP主表 (存储SOP元数据,与版本分离)
CREATE TABLE sops (id BIGINT PRIMARY KEY,name VARCHAR(255) NOT NULL,description TEXT,latest_published_version_id BIGINT,created_by BIGINT NOT NULL REFERENCES sys_user(user_id),created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),updated_by BIGINT NOT NULL REFERENCES sys_user(user_id),updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
COMMENT ON TABLE sops IS 'SOP主信息表,存储SOP的基本信息,与版本表分离便于版本管理';
COMMENT ON COLUMN sops.id IS 'SOP主记录唯一标识(GUID)';
COMMENT ON COLUMN sops.name IS 'SOP名称,如"车间设备每日巡检流程"';
COMMENT ON COLUMN sops.latest_published_version_id IS '指向最新发布的SOP版本,快速获取有效版本';
COMMENT ON COLUMN sops.created_by IS '创建者ID,外键引用sys_user表';-- 2.2 SOP版本表 (存储SOP的具体版本定义)
CREATE TABLE sop_versions (id BIGINT PRIMARY KEY,sop_id BIGINT NOT NULL REFERENCES sops(id) ON DELETE CASCADE,version_string VARCHAR(50) NOT NULL,status VARCHAR(20) NOT NULL CHECK (status IN ('Draft', 'Published', 'Archived')),definition JSONB NOT NULL,created_by BIGINT NOT NULL REFERENCES sys_user(user_id),created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),published_at TIMESTAMPTZ,UNIQUE (sop_id, version_string)
);
COMMENT ON TABLE sop_versions IS 'SOP版本表,存储SOP的具体版本定义,支持版本追溯与迭代';
COMMENT ON COLUMN sop_versions.sop_id IS '关联的SOP主记录ID,外键引用sops表';
COMMENT ON COLUMN sop_versions.version_string IS '版本号,如"V1.0"、"V2.1-Draft",同一SOP内唯一';
COMMENT ON COLUMN sop_versions.status IS '版本状态:Draft(草稿)、Published(已发布)、Archived(已归档)';
COMMENT ON COLUMN sop_versions.definition IS 'SOP流程定义(JSONB),包含节点、连线及配置信息';
COMMENT ON COLUMN sop_versions.published_at IS '版本发布时间,仅当状态为Published或Archived时有效';-- 关联SOP主表与最新版本,并设置为可延迟,以解决循环依赖问题
ALTER TABLE sopsADD CONSTRAINT fk_sops_latest_versionFOREIGN KEY (latest_published_version_id)REFERENCES sop_versions(id)ON DELETE SET NULL -- 如果版本被删除,仅将此链接置空DEFERRABLE INITIALLY DEFERRED;
COMMENT ON CONSTRAINT fk_sops_latest_version ON sops IS 'SOP主表与最新版本的外键关联。可延迟以方便在同一事务中创建SOP及其首个版本。';

SOP主表(存储SOP元数据,与版本分离)

-- 2.1 SOP主表 (存储SOP元数据,与版本分离)
CREATE TABLE sops (id BIGINT PRIMARY KEY,name VARCHAR(255) NOT NULL,description TEXT,latest_published_version_id BIGINT,created_by BIGINT NOT NULL REFERENCES sys_user(user_id),created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),updated_by BIGINT NOT NULL REFERENCES sys_user(user_id),updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
COMMENT ON TABLE sops IS 'SOP主信息表,存储SOP的基本信息,与版本表分离便于版本管理';
COMMENT ON COLUMN sops.id IS 'SOP主记录唯一标识(GUID)';
COMMENT ON COLUMN sops.name IS 'SOP名称,如"车间设备每日巡检流程"';
COMMENT ON COLUMN sops.latest_published_version_id IS '指向最新发布的SOP版本,快速获取有效版本';
COMMENT ON COLUMN sops.created_by IS '创建者ID,外键引用sys_user表';
  • 修改后使用 BIGINT 作为主键类型(id BIGINT PRIMARY KEY),且移除了自动生成 UUID 的默认值
  • created_by、updated_by修改后关联 sys_user 表(REFERENCES sys_user(user_id)
  • 与主键类型保持一致,latest_published_version_id 从 UUID 改为 BIGINT

SOP版本表 (存储SOP的具体版本定义)

-- 2.2 SOP版本表 (存储SOP的具体版本定义)
CREATE TABLE sop_versions (id BIGINT PRIMARY KEY,sop_id BIGINT NOT NULL REFERENCES sops(id) ON DELETE CASCADE,version_string VARCHAR(50) NOT NULL,status VARCHAR(20) NOT NULL CHECK (status IN ('Draft', 'Published', 'Archived')),definition JSONB NOT NULL,created_by BIGINT NOT NULL REFERENCES sys_user(user_id),created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),published_at TIMESTAMPTZ,UNIQUE (sop_id, version_string)
);
COMMENT ON TABLE sop_versions IS 'SOP版本表,存储SOP的具体版本定义,支持版本追溯与迭代';
COMMENT ON COLUMN sop_versions.sop_id IS '关联的SOP主记录ID,外键引用sops表';
COMMENT ON COLUMN sop_versions.version_string IS '版本号,如"V1.0"、"V2.1-Draft",同一SOP内唯一';
COMMENT ON COLUMN sop_versions.status IS '版本状态:Draft(草稿)、Published(已发布)、Archived(已归档)';
COMMENT ON COLUMN sop_versions.definition IS 'SOP流程定义(JSONB),包含节点、连线及配置信息';
COMMENT ON COLUMN sop_versions.published_at IS '版本发布时间,仅当状态为Published或Archived时有效';
  • 修改后使用 BIGINT 作为主键类型(id BIGINT PRIMARY KEY),且移除了自动生成 UUID 的默认值
  • sop_versions 表中的 sop_id 从 UUID 改为 BIGINT
  • sop_versions 表中的 created_by 从 UUID 改为 BIGINT

关联SOP主表与最新版本,并设置为可延迟,以解决循环依赖问题

-- 关联SOP主表与最新版本,并设置为可延迟,以解决循环依赖问题
ALTER TABLE sopsADD CONSTRAINT fk_sops_latest_versionFOREIGN KEY (latest_published_version_id)REFERENCES sop_versions(id)ON DELETE SET NULL -- 如果版本被删除,仅将此链接置空DEFERRABLE INITIALLY DEFERRED;
COMMENT ON CONSTRAINT fk_sops_latest_version ON sops IS 'SOP主表与最新版本的外键关联。可延迟以方便在同一事务中创建SOP及其首个版本。';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92780.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

A4.0:继C5.2的BJT理论引申的开关作用的应用示例

在C5里知道了BJT的静态工作点Q的计算方式(IC和VCE的负载线),以及偏置电阻RB,得到了电流IB,进而通过电流增益hFE得到了IC(IC β*IB),然后VCE VCC - IC*RC,即集电极和发射极之间的电压等于集电极…

平板探测器的主要技术指标

平板探测器(Flat-panel-detector,FPD)是一种广泛应用于医学影像学(如X射线、CT扫描等)、工业无损检测和科学研究中的成像设备。其主要技术指标包括以下几个方面: 1.空间分辨率(SpatialResolution) 定义:空间分辨率是指平板探测器能清晰分辨图像中细节的能力。一般以…

从苏州姑苏区人工智能大模型基础设施招标|学习参数5:单颗 AI 处理器的内存带宽如何达到 1600GB/s

招标参数5:配置≥8 个AI 处理器,支持OAM式集成服务器形式。单个 AI 处理器支持≥370TFLOPS@FP16或 80TFLOPS@FP32 算力,支持≥64GB HBM高带宽内存,单个AI处理器内存带宽≥1600GBps 单张卡算力及内存带宽参考如下NVIDIA算力表 H3C R4900 G5:支持多达 32 个 DDR4 内存,速率…

【机器学习深度学习】Embedding 模型详解:从基础原理到实际应用场景

目录 前言 一、Embedding 模型基础:文本到向量的“魔术师” 1.1 什么是 Embedding? 1.2 为什么需要 Embedding? 二、核心作用与优势:语义分析的“利刃” 三、工作原理拆解:从训练到应用的完整链条 3.1 训练阶段…

防御保护10

双机热备组网配置主备备份组网1、配置ip地址2、配置安全区域3、ospf配置4、配置双机热备5、安全策略hrp adjust ospf-cost enable --- 配置根据VGMP状态调整OSPF Cost值如果防火墙下行设备为三层设备,通过路由来引导流量,则需要配置上述命令;…

Python爬虫实战:研究meshio库,构建网格文件数据采集系统

一、引言 (一)研究背景 在有限元分析、计算流体力学(CFD)、计算机辅助设计(CAD)等领域,网格文件是描述几何模型离散化信息的基础数据载体,包含节点坐标、单元连接关系、物理属性等关键信息。目前,网格文件格式多达数十种(如 VTK、STL、OBJ、ANSYS CDB 等),且分散…

编程基础之字符串——统计数字字符个数

题目: 输入一行字符,统计出其中数字字符的个数。 输入: 一行字符串,总长度不超过255。 输出: 输出为1行,输出字符串里面数字字符的个数。 样例输入: Peking University is set up at 1898. 样…

Openlayers基础教程|从前端框架到GIS开发系列课程(19)地图控件和矢量图形绘制

1. 地图控件本篇教程主要介绍以下地图控件:视图跳转控件放大缩小控件全屏控件实现步骤1. 初始化地图上一篇已经介绍了,这一篇直接跳过该步骤。2. 视图跳转控件/* 视图跳转控件 */const ZoomToExtent new ol.control.ZoomToExtent({ extent: [110, 30, …

A#语言详解

A#语言详解:连接Ada与.NET的安全编程语言一、引言:A#的定义与起源A#(A Sharp)是一种基于.NET框架的编程语言,其设计目标是将Ada语言的安全性、可靠性与.NET生态系统的跨平台能力、组件化特性相结合。它由美国程序员Mic…

2025华数杯比赛还未完全结束!数模论文可以发表期刊会议

2025华数杯比赛还未完全结束! 数模论文可以发表期刊会议数学建模论文转化为可发表的期刊/会议论文,可以在保持实验数据和结果不变的前提下,对论文结构、表述方式和学术规范进行系统性调整,然后进行投稿。 这不仅能让你的研究成果被…

SSH远程连接TRAE时显示权限被拒绝检查方案

1. 检查并修复SSH服务端配置(Ubuntu端) # 编辑SSH配置文件 sudo nano /etc/ssh/sshd_config# 确保以下配置正确: PasswordAuthentication yes # 启用密码认证 PubkeyAuthentication yes # 启用密钥认证 PermitRootLogin yes …

浙大高飞团队新作:提出层级式探索框架,让「地空双模」机器人自主决策“飞”或“走”

导读 在面对复杂未知环境的自主探索任务中,如何在有限的能源与时间条件下实现高效、全面的场景感知,一直是机器人研究中的重要难题。近期,浙大高飞老师团队一项关于“地空双模机器人”的研究给出了新答案。 相比传统单一形态的机器人&#xf…

驱动电路设计

一、理论基础1.1定义驱动电路时位于控制电路和负载(主)电路之间,用来对控制电路的信号进行放大的中间电路。控制电路----(控制信号)--->驱动电路----(驱动信号)--->负载电路↑提供足够的电…

RAG (Retrieval-Augmented Generation) 原理详解与实例

核心概念:什么是 RAG? 想象一下,你是一位专家,需要回答一个复杂的问题。你不会凭空编造答案,而是会: 检索 (Retrieval):先去查阅相关的书籍、论文、报告或数据库,找到最相关的信息片段。 理解与整合 (Comprehension & Integration):阅读这些信息,理解其核心内容。…

SOMGAN:利用自组织映射提高生成对抗网络的模式探索能力

论文信息 论文题目:Improving mode exploring capability ofgenerative adversarial nets by self-organizing map(利用自组织映射提高生成对抗网络的模式探索能力) 期刊:Neurocomputing 摘要:生成对抗网络(GANs)的出…

全栈:如果SSM项目里的数据库是mysql而自己使用的是SQLserver应该替换哪些文件?

将基于 SSM(Spring SpringMVC MyBatis)框架项目里的 MySQL 换成 SQL Server,主要需改动以下几部分: 1. 依赖配置(pom.xml) 移除 MySQL 驱动依赖:找到原 MySQL 驱动相关依赖,一般类…

基于 Jenkins Pipeline 实现 DITA 文档自动化构建与发布(开源方案)

这是我最近开发的一个基于 Jenkins Pipeline 的 DITA 文档自动化构建方案。对于需要维护大量 DITA 格式文档的团队来说,手动构建不仅效率低下,还容易出现版本不一致的问题。通过这套开源方案,我们可以实现代码拉取、多地图并行构建、结果归档…

reinterpret_cast and static cast

什么时候使用 reinterpret_cast&#xff1f;指针类型之间的转换&#xff1a; 当需要将一种类型的指针转换为另一种类型的指针时&#xff0c;可以使用 reinterpret_cast。例如&#xff1a;int* intPtr new int(10); void* voidPtr reinterpret_cast<void*>(intPtr); // …

自动化运维 | 乐维8.0安装及简单使用

文章目录1.创建虚拟机2.安装乐维8.03.Web界面登录访问4.添加第一个监控在文章的开头需要感谢乐维带来这么好的自动化运维系统提供我们学习参考或是在生产环境中进行使用&#xff0c;并附上乐维官网供大家参考和学习&#xff1a;https://www.lwops.cn/1.创建虚拟机 在VMware wo…