47 lines
2.2 KiB
MySQL
47 lines
2.2 KiB
MySQL
|
|
-- 户外招聘会展位副本:招聘会绑定场地后,在招聘会详情内独立生成和维护展位图
|
|||
|
|
-- 瀚高数据库 / 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"
|
|||
|
|
);
|