Files
shz-backend/sql/cms_outdoor_fair_booth_snapshot.sql

47 lines
2.2 KiB
MySQL
Raw Permalink Normal View History

-- 户外招聘会展位副本:招聘会绑定场地后,在招聘会详情内独立生成和维护展位图
-- 瀚高数据库 / PostgreSQL 兼容
CREATE SEQUENCE IF NOT EXISTS "cms_outdoor_fair_booth_id_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
CREATE TABLE IF NOT EXISTS "cms_outdoor_fair_booth" (
"id" BIGINT NOT NULL DEFAULT nextval('"cms_outdoor_fair_booth_id_seq"') PRIMARY KEY,
"fair_id" BIGINT NOT NULL,
"source_venue_id" BIGINT,
"source_booth_id" BIGINT,
"booth_number" VARCHAR(50) NOT NULL,
"position_x" INTEGER NOT NULL DEFAULT 0,
"position_y" INTEGER NOT NULL DEFAULT 0,
"create_by" VARCHAR(64) DEFAULT '',
"create_time" TIMESTAMP(0),
"update_by" VARCHAR(64) DEFAULT '',
"update_time" TIMESTAMP(0),
"remark" VARCHAR(500),
"del_flag" CHAR(1) DEFAULT '0'
);
COMMENT ON TABLE "cms_outdoor_fair_booth" IS '户外招聘会展位图副本';
COMMENT ON COLUMN "cms_outdoor_fair_booth"."fair_id" IS '招聘会ID';
COMMENT ON COLUMN "cms_outdoor_fair_booth"."source_venue_id" IS '来源场地ID';
COMMENT ON COLUMN "cms_outdoor_fair_booth"."source_booth_id" IS '来源场地展位ID';
COMMENT ON COLUMN "cms_outdoor_fair_booth"."booth_number" IS '展位号';
COMMENT ON COLUMN "cms_outdoor_fair_booth"."position_x" IS 'X坐标';
COMMENT ON COLUMN "cms_outdoor_fair_booth"."position_y" IS 'Y坐标';
CREATE UNIQUE INDEX IF NOT EXISTS "uk_cms_outdoor_fair_booth_number" ON "cms_outdoor_fair_booth" ("fair_id", "booth_number");
CREATE INDEX IF NOT EXISTS "idx_cms_outdoor_fair_booth_fair" ON "cms_outdoor_fair_booth" ("fair_id");
-- 兼容历史预定:如果已有副本保留了 source_booth_id把旧 booking.booth_id 改为招聘会副本展位ID
UPDATE "cms_outdoor_fair_booth_booking" booking
SET "booth_id" = fair_booth."id",
"booth_number" = fair_booth."booth_number"
FROM "cms_outdoor_fair_booth" fair_booth
WHERE booking."fair_id" = fair_booth."fair_id"
AND booking."booth_id" = fair_booth."source_booth_id"
AND booking."del_flag" = '0'
AND NOT EXISTS (
SELECT 1
FROM "cms_outdoor_fair_booth" snapshot_booth
WHERE snapshot_booth."fair_id" = booking."fair_id"
AND snapshot_booth."id" = booking."booth_id"
);