产品列表配置附加费
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
-- 附加费关联表:维护 prc_surcharge 与 bms_product(产品表) / bms_product_country(明细表) 的关系
|
||||
-- 语义:
|
||||
-- product_id 产品主键(外键关联 bms_product.product_id,与 product_code 一一对应)
|
||||
-- product_code 产品对接代码(便于与明细表 bms_product_country 及前端交互)
|
||||
-- detail_id 为空 = 产品级附加费(作用于该产品全部明细)
|
||||
-- 有值 = 明细级附加费(作用于该产品某个 国家×重量段 明细)
|
||||
-- 一个附加费可关联多个产品/明细;一个产品/明细可挂多个附加费(多对多)
|
||||
-- 执行后即可在「产品列表」按产品/明细维护附加费关联
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS prc_surcharge_rel (
|
||||
rel_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '关联ID',
|
||||
sc_id BIGINT(20) NOT NULL COMMENT '附加费配置ID prc_surcharge.sc_id',
|
||||
product_id BIGINT(20) NOT NULL COMMENT '产品ID bms_product.product_id',
|
||||
product_code VARCHAR(20) NOT NULL COMMENT '产品对接代码 bms_product.product_code',
|
||||
detail_id BIGINT(20) DEFAULT NULL COMMENT '产品明细ID bms_product_country.detail_id(空=作用于产品全部明细)',
|
||||
created_by VARCHAR(64) DEFAULT '' COMMENT '创建人',
|
||||
created_at DATETIME DEFAULT NULL COMMENT '创建时间',
|
||||
updated_by VARCHAR(64) DEFAULT '' COMMENT '更新人',
|
||||
updated_at DATETIME DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (rel_id),
|
||||
UNIQUE KEY uk_rel_scope (sc_id, product_id, detail_id),
|
||||
INDEX idx_rel_sc (sc_id),
|
||||
INDEX idx_rel_product (product_id),
|
||||
INDEX idx_rel_product_code (product_code),
|
||||
INDEX idx_rel_detail (detail_id),
|
||||
CONSTRAINT fk_rel_sc FOREIGN KEY (sc_id) REFERENCES prc_surcharge (sc_id) ON DELETE CASCADE,
|
||||
CONSTRAINT fk_rel_product FOREIGN KEY (product_id) REFERENCES bms_product (product_id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='附加费与产品/明细关联表';
|
||||
|
||||
-- 若已按旧版(无 product_id)建表且已有数据,升级步骤:
|
||||
-- ALTER TABLE prc_surcharge_rel ADD COLUMN product_id BIGINT(20) DEFAULT NULL COMMENT '产品ID' AFTER sc_id;
|
||||
-- UPDATE prc_surcharge_rel r JOIN bms_product p ON p.product_code = r.product_code SET r.product_id = p.product_id;
|
||||
-- ALTER TABLE prc_surcharge_rel MODIFY COLUMN product_id BIGINT(20) NOT NULL COMMENT '产品ID bms_product.product_id';
|
||||
-- ALTER TABLE prc_surcharge_rel ADD INDEX idx_rel_product (product_id);
|
||||
-- ALTER TABLE prc_surcharge_rel ADD CONSTRAINT fk_rel_product FOREIGN KEY (product_id) REFERENCES bms_product (product_id) ON DELETE CASCADE;
|
||||
|
||||
-- 若上一版方案(prc_surcharge 加 product_code 字段)已执行,可手动回退(MySQL 5.7 不支持 DROP COLUMN IF EXISTS):
|
||||
-- ALTER TABLE prc_surcharge DROP COLUMN product_code;
|
||||
Reference in New Issue
Block a user