Files
his/迁移记录-DB变更记录/202512301200add_table_order_main.sql
2026-01-09 11:33:03 +08:00

116 lines
6.5 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 创建序列
CREATE SEQUENCE order_main_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
-- 创建订单主表
CREATE TABLE "order_main" (
-- 主键字段
"id" int8 NOT NULL DEFAULT nextval('order_main_id_seq'::regclass),
-- 业务核心字段
"order_no" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 订单号
"patient_id" int8, -- 患者ID
"patient_name" varchar(50) COLLATE "pg_catalog"."default", -- 患者姓名
"medical_card" varchar(32) COLLATE "pg_catalog"."default", -- 就诊卡号
"phone" varchar(20) COLLATE "pg_catalog"."default", -- 手机号
"gender" int4, -- 性别1-男2-女)
"schedule_id" int8, -- 排班ID
"slot_id" int8, -- 号源ID
"department_id" int8, -- 科室ID
"department_name" varchar(100) COLLATE "pg_catalog"."default", -- 科室名称
"doctor_id" int8, -- 医生ID
"doctor_name" varchar(50) COLLATE "pg_catalog"."default", -- 医生姓名
"reg_type" varchar(10) COLLATE "pg_catalog"."default", -- 号别(普通/专家)
"fee" numeric(10,2), -- 挂号费
"appointment_date" timestamptz(6), -- 预约日期
"appointment_time" timestamptz(6), -- 预约时间
"cancel_time" timestamptz(6), -- 取消时间
"cancel_reason" varchar(200) COLLATE "pg_catalog"."default", -- 取消原因
"status" int4 NOT NULL DEFAULT 1, -- 状态1-预约中2-已完成3-已取消)
"pay_status" int4 NOT NULL DEFAULT 0, -- 支付状态0-未支付1-已支付)
"version" int4 NOT NULL DEFAULT 0, -- 版本号(乐观锁)
-- 继承HisBaseEntity的审计字段
"tenant_id" int8 NOT NULL, -- 租户ID
"delete_flag" char(1) COLLATE "pg_catalog"."default" NOT NULL DEFAULT '0', -- 删除标志0-未删除1-已删除)
"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 "order_main_pkey" PRIMARY KEY ("id")
);
-- 设置表所有者根据实际数据库用户修改如果不存在postgres角色可注释掉此行
-- ALTER TABLE "order_main" OWNER TO "postgres";
-- 表及字段注释
COMMENT ON TABLE "order_main" IS '订单主表:存储门诊预约挂号订单信息';
COMMENT ON COLUMN "order_main"."id" IS '主键ID';
COMMENT ON COLUMN "order_main"."order_no" IS '订单号:唯一标识订单,系统自动生成';
COMMENT ON COLUMN "order_main"."patient_id" IS '患者ID关联adm_patient表';
COMMENT ON COLUMN "order_main"."patient_name" IS '患者姓名:冗余字段,便于查询';
COMMENT ON COLUMN "order_main"."medical_card" IS '就诊卡号:患者就诊卡编号';
COMMENT ON COLUMN "order_main"."phone" IS '手机号:患者联系电话';
COMMENT ON COLUMN "order_main"."gender" IS '性别1-男2-女';
COMMENT ON COLUMN "order_main"."schedule_id" IS '排班ID关联排班表';
COMMENT ON COLUMN "order_main"."slot_id" IS '号源ID关联clinical_ticket表';
COMMENT ON COLUMN "order_main"."department_id" IS '科室ID关联科室表';
COMMENT ON COLUMN "order_main"."department_name" IS '科室名称:冗余字段,便于查询';
COMMENT ON COLUMN "order_main"."doctor_id" IS '医生ID关联医生表';
COMMENT ON COLUMN "order_main"."doctor_name" IS '医生姓名:冗余字段,便于查询';
COMMENT ON COLUMN "order_main"."reg_type" IS '号别:普通/专家';
COMMENT ON COLUMN "order_main"."fee" IS '挂号费:挂号费用金额';
COMMENT ON COLUMN "order_main"."appointment_date" IS '预约日期:患者预约的就诊日期';
COMMENT ON COLUMN "order_main"."appointment_time" IS '预约时间:患者预约的具体时间';
COMMENT ON COLUMN "order_main"."cancel_time" IS '取消时间:订单取消的时间';
COMMENT ON COLUMN "order_main"."cancel_reason" IS '取消原因:订单取消的原因说明';
COMMENT ON COLUMN "order_main"."status" IS '状态1-预约中2-已完成3-已取消';
COMMENT ON COLUMN "order_main"."pay_status" IS '支付状态0-未支付1-已支付';
COMMENT ON COLUMN "order_main"."version" IS '版本号:乐观锁,防止并发冲突';
COMMENT ON COLUMN "order_main"."tenant_id" IS '租户ID多租户系统隔离字段';
COMMENT ON COLUMN "order_main"."delete_flag" IS '删除标志0-未删除1-已删除';
COMMENT ON COLUMN "order_main"."create_by" IS '创建人:存储创建者用户名';
COMMENT ON COLUMN "order_main"."create_time" IS '创建时间:默认当前时间,带时区';
COMMENT ON COLUMN "order_main"."update_by" IS '更新人:存储更新者用户名';
COMMENT ON COLUMN "order_main"."update_time" IS '更新时间:带时区';
-- 创建索引
CREATE INDEX "idx_order_main_order_no"
ON "order_main" ("order_no")
WHERE "delete_flag" = '0';
CREATE INDEX "idx_order_main_patient_id"
ON "order_main" ("patient_id")
WHERE "delete_flag" = '0';
CREATE INDEX "idx_order_main_slot_id"
ON "order_main" ("slot_id")
WHERE "delete_flag" = '0';
CREATE INDEX "idx_order_main_department_id"
ON "order_main" ("department_id")
WHERE "delete_flag" = '0';
CREATE INDEX "idx_order_main_doctor_id"
ON "order_main" ("doctor_id")
WHERE "delete_flag" = '0';
CREATE INDEX "idx_order_main_status"
ON "order_main" ("status")
WHERE "delete_flag" = '0';
CREATE INDEX "idx_order_main_tenant_id"
ON "order_main" ("tenant_id", "create_time")
WHERE "delete_flag" = '0';
-- 向迁移历史表插入记录
INSERT INTO __MigrationsHistory (MigrationId, ProductVersion)
VALUES ('202512301200add_table_order_main', '1.0.0');