76 lines
3.2 KiB
SQL
76 lines
3.2 KiB
SQL
-- 1. 创建序列
|
||
CREATE SEQUENCE doc_record_id_seq
|
||
START WITH 1
|
||
INCREMENT BY 1
|
||
NO MINVALUE
|
||
NO MAXVALUE
|
||
CACHE 1;
|
||
|
||
-- 2. 创建文书记录表
|
||
CREATE TABLE "public"."doc_record" (
|
||
-- 主键ID
|
||
"id" int8 NOT NULL DEFAULT nextval('doc_record_id_seq'::regclass),
|
||
|
||
-- 实体类字段
|
||
"definition_id" int8 NOT NULL,
|
||
"definition_bus_no" varchar(100) COLLATE "pg_catalog"."default" NOT NULL,
|
||
"content_json" text COLLATE "pg_catalog"."default" NOT NULL,
|
||
"status_enum" int4 NOT NULL DEFAULT 0,
|
||
"organization_id" int8 NOT NULL,
|
||
"encounter_id" int8 NOT NULL,
|
||
"patient_id" int8 NOT NULL,
|
||
"record_time" timestamptz(6) NOT NULL,
|
||
|
||
-- 继承的审计字段
|
||
"tenant_id" int8 NOT NULL,
|
||
"delete_flag" char(1) COLLATE "pg_catalog"."default" NOT NULL DEFAULT '0',
|
||
"create_by" varchar(32) COLLATE "pg_catalog"."default" NOT NULL DEFAULT '',
|
||
"create_time" timestamptz(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
"update_by" varchar(32) COLLATE "pg_catalog"."default",
|
||
"update_time" timestamptz(6),
|
||
|
||
-- 主键约束
|
||
CONSTRAINT "doc_record_pkey" PRIMARY KEY ("id")
|
||
);
|
||
|
||
-- 3. 设置表所有者
|
||
ALTER TABLE "public"."doc_record" OWNER TO "postgres";
|
||
|
||
-- 4. 表和字段注释
|
||
COMMENT ON TABLE "public"."doc_record" IS '文书记录表';
|
||
|
||
COMMENT ON COLUMN "public"."doc_record"."id" IS '主键ID';
|
||
COMMENT ON COLUMN "public"."doc_record"."definition_id" IS '定义ID';
|
||
COMMENT ON COLUMN "public"."doc_record"."definition_bus_no" IS '业务编码';
|
||
COMMENT ON COLUMN "public"."doc_record"."content_json" IS '文档内容(JSON格式)';
|
||
COMMENT ON COLUMN "public"."doc_record"."status_enum" IS '状态枚举: 0-草稿/暂存,1-提交,2-归档,3-修改';
|
||
COMMENT ON COLUMN "public"."doc_record"."organization_id" IS '科室ID';
|
||
COMMENT ON COLUMN "public"."doc_record"."encounter_id" IS '就诊记录ID';
|
||
COMMENT ON COLUMN "public"."doc_record"."patient_id" IS '病人ID';
|
||
COMMENT ON COLUMN "public"."doc_record"."record_time" IS '记录时间';
|
||
COMMENT ON COLUMN "public"."doc_record"."tenant_id" IS '租户ID';
|
||
COMMENT ON COLUMN "public"."doc_record"."delete_flag" IS '删除标志: 0-未删除,1-已删除';
|
||
COMMENT ON COLUMN "public"."doc_record"."create_by" IS '创建人';
|
||
COMMENT ON COLUMN "public"."doc_record"."create_time" IS '创建时间';
|
||
COMMENT ON COLUMN "public"."doc_record"."update_by" IS '更新人';
|
||
COMMENT ON COLUMN "public"."doc_record"."update_time" IS '更新时间';
|
||
|
||
-- 5. 索引设计
|
||
-- 按定义ID查询(高频场景)
|
||
CREATE INDEX "idx_doc_record_definition" ON "public"."doc_record" ("definition_id");
|
||
-- 按病人ID查询(高频场景)
|
||
CREATE INDEX "idx_doc_record_patient" ON "public"."doc_record" ("patient_id");
|
||
-- 按就诊ID查询(高频场景)
|
||
CREATE INDEX "idx_doc_record_encounter" ON "public"."doc_record" ("encounter_id");
|
||
-- 按科室ID查询
|
||
CREATE INDEX "idx_doc_record_orgnization" ON "public"."doc_record" ("orgnization_id");
|
||
-- 按记录时间范围查询
|
||
CREATE INDEX "idx_doc_record_time" ON "public"."doc_record" ("record_time");
|
||
-- 按状态查询
|
||
CREATE INDEX "idx_doc_record_status" ON "public"."doc_record" ("status_enum");
|
||
|
||
|
||
|
||
-- 向迁移历史表插入记录
|
||
INSERT INTO __MigrationsHistory (MigrationId, ProductVersion)
|
||
VALUES ('202508221059 doc_record', '1.0.0'); |