增加分区功能
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
-- ----------------------------
|
||||
-- Zone management: bms_region -> prc_zone -> prc_zone_detail
|
||||
-- Country master is bms_region (no prc_zone_country)
|
||||
-- charset: utf8mb4
|
||||
-- ----------------------------
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
DROP TABLE IF EXISTS prc_zone_detail;
|
||||
DROP TABLE IF EXISTS prc_zone;
|
||||
DROP TABLE IF EXISTS prc_zone_country;
|
||||
DROP TABLE IF EXISTS xtd_zonecountry;
|
||||
DROP TABLE IF EXISTS xtd_zone_division;
|
||||
DROP TABLE IF EXISTS xtd_zone_scheme;
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS prc_zone (
|
||||
zone_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'zone id',
|
||||
region_id BIGINT(20) NOT NULL COMMENT 'bms_region.region_id',
|
||||
country_code VARCHAR(10) NOT NULL COMMENT 'ISO2 country code from bms_region',
|
||||
zone_code VARCHAR(50) NOT NULL COMMENT 'zone code e.g. 1',
|
||||
zone_name VARCHAR(100) DEFAULT NULL COMMENT 'display name e.g. AU(1)',
|
||||
zone_sort INT(11) DEFAULT 0 COMMENT 'sort',
|
||||
remark VARCHAR(500) DEFAULT NULL COMMENT 'remark',
|
||||
create_time DATETIME DEFAULT NULL COMMENT 'created at',
|
||||
update_time DATETIME DEFAULT NULL COMMENT 'updated at',
|
||||
PRIMARY KEY (zone_id),
|
||||
UNIQUE KEY uk_zone_region_code (region_id, zone_code),
|
||||
INDEX idx_zone_region_id (region_id),
|
||||
INDEX idx_zone_country_code (country_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='zone under bms_region';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS prc_zone_detail (
|
||||
detail_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'detail id',
|
||||
zone_id BIGINT(20) NOT NULL COMMENT 'zone id',
|
||||
postcode VARCHAR(32) NOT NULL COMMENT 'postcode',
|
||||
create_time DATETIME DEFAULT NULL COMMENT 'created at',
|
||||
update_time DATETIME DEFAULT NULL COMMENT 'updated at',
|
||||
PRIMARY KEY (detail_id),
|
||||
INDEX idx_zd_zone_id (zone_id),
|
||||
INDEX idx_zd_postcode (postcode),
|
||||
UNIQUE KEY uk_zd_zone_postcode (zone_id, postcode),
|
||||
CONSTRAINT fk_zd_zone FOREIGN KEY (zone_id) REFERENCES prc_zone (zone_id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='zone postcode detail';
|
||||
@@ -0,0 +1,16 @@
|
||||
-- Add country_code to existing prc_zone (skip if re-running full zone_country.sql)
|
||||
-- charset: utf8mb4
|
||||
|
||||
ALTER TABLE prc_zone
|
||||
ADD COLUMN country_code VARCHAR(10) NULL COMMENT 'ISO2 country code from bms_region' AFTER region_id;
|
||||
|
||||
UPDATE prc_zone z
|
||||
INNER JOIN bms_region r ON r.region_id = z.region_id
|
||||
SET z.country_code = r.country_code_2
|
||||
WHERE z.country_code IS NULL OR z.country_code = '';
|
||||
|
||||
ALTER TABLE prc_zone
|
||||
MODIFY COLUMN country_code VARCHAR(10) NOT NULL COMMENT 'ISO2 country code from bms_region';
|
||||
|
||||
ALTER TABLE prc_zone
|
||||
ADD INDEX idx_zone_country_code (country_code);
|
||||
@@ -4,50 +4,8 @@
|
||||
-- menu_id: 2100-2123 (2115-2123 reserved)
|
||||
-- ----------------------------
|
||||
|
||||
CREATE TABLE IF NOT EXISTS xtd_zone_scheme (
|
||||
zs_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'zone scheme id',
|
||||
zs_name VARCHAR(100) NOT NULL COMMENT 'scheme name',
|
||||
ss_code VARCHAR(20) NOT NULL DEFAULT 'on' COMMENT 'status on/off',
|
||||
pg_code VARCHAR(50) DEFAULT NULL COMMENT 'product group code',
|
||||
sn_id BIGINT(20) DEFAULT NULL COMMENT 'service channel id',
|
||||
zs_note VARCHAR(500) DEFAULT NULL COMMENT 'note',
|
||||
tms_id BIGINT(20) DEFAULT NULL COMMENT 'tenant id',
|
||||
created_by VARCHAR(64) DEFAULT '' COMMENT 'created by',
|
||||
create_time DATETIME DEFAULT NULL COMMENT 'created at',
|
||||
updated_by VARCHAR(64) DEFAULT '' COMMENT 'updated by',
|
||||
update_time DATETIME DEFAULT NULL COMMENT 'updated at',
|
||||
PRIMARY KEY (zs_id),
|
||||
INDEX idx_zs_ss_code (ss_code),
|
||||
INDEX idx_zs_tms_id (tms_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='zone scheme';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS xtd_zone_division (
|
||||
zd_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'division id globally unique',
|
||||
zs_id BIGINT(20) NOT NULL COMMENT 'scheme id',
|
||||
zd_sort INT(11) DEFAULT 0 COMMENT 'sort',
|
||||
zd_code VARCHAR(50) DEFAULT NULL COMMENT 'division code',
|
||||
zn_name VARCHAR(100) DEFAULT NULL COMMENT 'name',
|
||||
zn_ename VARCHAR(100) DEFAULT NULL COMMENT 'english name',
|
||||
zn_note VARCHAR(500) DEFAULT NULL COMMENT 'note',
|
||||
create_time DATETIME DEFAULT NULL COMMENT 'created at',
|
||||
update_time DATETIME DEFAULT NULL COMMENT 'updated at',
|
||||
PRIMARY KEY (zd_id),
|
||||
INDEX idx_zd_zs_id (zs_id),
|
||||
CONSTRAINT fk_zd_zs FOREIGN KEY (zs_id) REFERENCES xtd_zone_scheme (zs_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='zone division';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS xtd_zonecountry (
|
||||
zc_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'zone country id',
|
||||
zd_id BIGINT(20) NOT NULL COMMENT 'division id',
|
||||
country_code CHAR(2) NOT NULL COMMENT 'ISO2 country code',
|
||||
zc_dividekind VARCHAR(10) NOT NULL DEFAULT 'C' COMMENT 'divide kind default C',
|
||||
create_time DATETIME DEFAULT NULL COMMENT 'created at',
|
||||
update_time DATETIME DEFAULT NULL COMMENT 'updated at',
|
||||
PRIMARY KEY (zc_id),
|
||||
INDEX idx_zc_zd_id (zd_id),
|
||||
INDEX idx_zc_country (country_code),
|
||||
CONSTRAINT fk_zc_zd FOREIGN KEY (zd_id) REFERENCES xtd_zone_division (zd_id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='zone country';
|
||||
-- Zone tables moved to zone_country.sql (prc_zone_country / prc_zone / prc_zone_detail)
|
||||
-- Run: bms-back/sql/price/zone_country.sql
|
||||
|
||||
CREATE TABLE IF NOT EXISTS prc_weight_section_template (
|
||||
wst_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT 'weight template id',
|
||||
|
||||
Reference in New Issue
Block a user