logistics/sql/create_tables.sql

338 lines
14 KiB
SQL

-- 物流费用计算系统数据库表结构
-- 创建数据库: logistics
-- ============================================
-- 物流公司配置表
-- ============================================
CREATE TABLE IF NOT EXISTS logistics_company (
id INT AUTO_INCREMENT PRIMARY KEY,
company_code VARCHAR(50) NOT NULL COMMENT '公司代码',
company_name VARCHAR(100) NOT NULL COMMENT '公司名称',
country VARCHAR(10) NOT NULL COMMENT '国家代码: US, UK, AU, DE等',
logistics_type VARCHAR(20) NOT NULL COMMENT '物流类型: EXPRESS, COURIER, OCEAN, AIR',
port VARCHAR(20) DEFAULT 'DEFAULT' COMMENT '港口: DEFAULT, WEST, EAST等',
currency VARCHAR(10) DEFAULT 'USD' COMMENT '货币',
active TINYINT DEFAULT 1 COMMENT '是否启用: 0-禁用, 1-启用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_company_code (company_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流公司配置表';
-- ============================================
-- 英国物流价格表
-- ============================================
-- 英国卡派-分区表
CREATE TABLE IF NOT EXISTS uk_postcode_zone (
id INT AUTO_INCREMENT PRIMARY KEY,
postcode_prefix VARCHAR(10) NOT NULL COMMENT '邮编前缀',
zone VARCHAR(10) NOT NULL COMMENT '分区',
is_remote TINYINT DEFAULT 0 COMMENT '是否偏远: 0-否, 1-是',
UNIQUE KEY uk_postcode (postcode_prefix)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='英国邮编分区表';
-- 英国卡派-运费表
CREATE TABLE IF NOT EXISTS uk_kp_nv_price (
id INT AUTO_INCREMENT PRIMARY KEY,
zone VARCHAR(10) NOT NULL COMMENT '分区',
tuopan INT NOT NULL COMMENT '托盘数',
fee DECIMAL(10,2) NOT NULL COMMENT '运费',
INDEX idx_zone (zone)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='英国卡派NV运费表';
-- ============================================
-- 美国物流价格表
-- ============================================
-- 美国邮编分区表
CREATE TABLE IF NOT EXISTS us_postcode_zone (
id INT AUTO_INCREMENT PRIMARY KEY,
postcode VARCHAR(5) NOT NULL COMMENT '邮编(5位)',
port VARCHAR(20) DEFAULT 'west' COMMENT '港口: west, east',
zone VARCHAR(10) COMMENT '分区',
remote_type INT DEFAULT 0 COMMENT '偏远类型: 0-非偏远, 1-偏远, 2-超偏远, 3-超超偏远',
INDEX idx_postcode (postcode)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国邮编分区表';
-- 美国快递-邮差小马 价格表
CREATE TABLE IF NOT EXISTS us_fedex_pp_price (
id INT AUTO_INCREMENT PRIMARY KEY,
lbs INT NOT NULL COMMENT '重量(磅)',
zone_2 DECIMAL(10,2) COMMENT '2区价格',
zone_3 DECIMAL(10,2) COMMENT '3区价格',
zone_4 DECIMAL(10,2) COMMENT '4区价格',
zone_5 DECIMAL(10,2) COMMENT '5区价格',
zone_6 DECIMAL(10,2) COMMENT '6区价格',
zone_7 DECIMAL(10,2) COMMENT '7区价格',
zone_8 DECIMAL(10,2) COMMENT '8区价格',
INDEX idx_lbs (lbs)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Fedex邮差小马价格表';
-- 美国快递-金宏亚 价格表
CREATE TABLE IF NOT EXISTS us_fedex_kh_price (
id INT AUTO_INCREMENT PRIMARY KEY,
lbs INT NOT NULL COMMENT '重量(磅)',
zone_2 DECIMAL(10,2) COMMENT '2区价格',
zone_3 DECIMAL(10,2) COMMENT '3区价格',
zone_4 DECIMAL(10,2) COMMENT '4区价格',
zone_5 DECIMAL(10,2) COMMENT '5区价格',
zone_6 DECIMAL(10,2) COMMENT '6区价格',
zone_7 DECIMAL(10,2) COMMENT '7区价格',
zone_8 DECIMAL(10,2) COMMENT '8区价格',
INDEX idx_lbs (lbs)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Fedex金宏亚价格表';
-- 美国快递-FEDEX 价格表
CREATE TABLE IF NOT EXISTS us_fedex_price (
id INT AUTO_INCREMENT PRIMARY KEY,
lbs INT NOT NULL COMMENT '重量(磅)',
zone_2 DECIMAL(10,2) COMMENT '2区价格',
zone_3 DECIMAL(10,2) COMMENT '3区价格',
zone_4 DECIMAL(10,2) COMMENT '4区价格',
zone_5 DECIMAL(10,2) COMMENT '5区价格',
zone_6 DECIMAL(10,2) COMMENT '6区价格',
zone_7 DECIMAL(10,2) COMMENT '7区价格',
zone_8 DECIMAL(10,2) COMMENT '8区价格',
INDEX idx_lbs (lbs)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国FEDEX价格表';
-- 美国卡派-GIGA 价格表
CREATE TABLE IF NOT EXISTS us_giga_price (
id INT AUTO_INCREMENT PRIMARY KEY,
zip_code VARCHAR(5) NOT NULL COMMENT '邮编',
delivery_warehouse VARCHAR(50) COMMENT '仓库',
general_area VARCHAR(50) COMMENT '地区',
fee_type VARCHAR(20) COMMENT '费用类型',
zone VARCHAR(10) COMMENT '分区',
local_pickup_fee DECIMAL(10,2) COMMENT '本地取货费',
warehouse_handling_fee DECIMAL(10,2) COMMENT '仓库操作费',
delivery_fee_rate DECIMAL(10,2) COMMENT '配送费率',
additional_delivery_fee DECIMAL(10,2) COMMENT '额外配送费',
assembly_fee DECIMAL(10,2) COMMENT '装配费',
INDEX idx_zip (zip_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国GIGA价格表';
-- 美国卡派-CEVA 价格表
CREATE TABLE IF NOT EXISTS us_ceva_price (
id INT AUTO_INCREMENT PRIMARY KEY,
ceva_weight INT NOT NULL COMMENT 'CEVA重量',
zone_ca DECIMAL(10,2) COMMENT 'CA区价格',
zone_wa DECIMAL(10,2) COMMENT 'WA区价格',
zone_or DECIMAL(10,2) COMMENT 'OR区价格',
zone_nv DECIMAL(10,2) COMMENT 'NV区价格',
zone_az DECIMAL(10,2) COMMENT 'AZ区价格',
zone_co DECIMAL(10,2) COMMENT 'CO区价格',
zone_ut DECIMAL(10,2) COMMENT 'UT区价格',
zone_nm DECIMAL(10,2) COMMENT 'NM区价格',
remote_area_surcharge DECIMAL(10,2) COMMENT '偏远地区附加费',
INDEX idx_weight (ceva_weight)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国CEVA价格表';
-- 美国卡派-CEVA 邮编分区表
CREATE TABLE IF NOT EXISTS us_ceva_zone (
id INT AUTO_INCREMENT PRIMARY KEY,
postal_code VARCHAR(5) NOT NULL COMMENT '邮编',
state VARCHAR(20) COMMENT '',
beyond_zone VARCHAR(10) COMMENT '超出分区',
remote_type VARCHAR(20) DEFAULT 'standard' COMMENT '偏远类型: standard, remote',
INDEX idx_postal (postal_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国CEVA邮编分区表';
-- 美国卡派-CEVA 分区表
CREATE TABLE IF NOT EXISTS us_ceva_zone_grade (
id INT AUTO_INCREMENT PRIMARY KEY,
to_state VARCHAR(20) NOT NULL COMMENT '目的地州',
ca DECIMAL(10,2) COMMENT 'CA分区',
wa DECIMAL(10,2) COMMENT 'WA分区',
INDEX idx_state (to_state)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国CEVA分区等级表';
-- 美国卡派-Metro 价格表
CREATE TABLE IF NOT EXISTS us_metro_price (
id INT AUTO_INCREMENT PRIMARY KEY,
origins VARCHAR(20) NOT NULL COMMENT '出发地',
zone_1l DECIMAL(10,2) COMMENT 'Zone 1L价格',
zone_2l DECIMAL(10,2) COMMENT 'Zone 2L价格',
zone_3l DECIMAL(10,2) COMMENT 'Zone 3L价格',
zone_4l DECIMAL(10,2) COMMENT 'Zone 4L价格',
zone_5l DECIMAL(10,2) COMMENT 'Zone 5L价格',
zone_6l DECIMAL(10,2) COMMENT 'Zone 6L价格',
zone_7l DECIMAL(10,2) COMMENT 'Zone 7L价格',
zone_8l DECIMAL(10,2) COMMENT 'Zone 8L价格',
zone_9l DECIMAL(10,2) COMMENT 'Zone 9L价格',
INDEX idx_origins (origins)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Metro价格表';
-- 美国卡派-Metro 邮编分区表
CREATE TABLE IF NOT EXISTS us_metro_zone (
id INT AUTO_INCREMENT PRIMARY KEY,
zip_code VARCHAR(5) NOT NULL COMMENT '邮编',
new_zone_name VARCHAR(20) COMMENT '新分区名',
INDEX idx_zip (zip_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Metro邮编分区表';
-- 美国卡派-Metro 偏远表
CREATE TABLE IF NOT EXISTS us_metro_remote (
id INT AUTO_INCREMENT PRIMARY KEY,
zip_code VARCHAR(5) NOT NULL COMMENT '邮编',
area_type VARCHAR(50) COMMENT '区域类型',
INDEX idx_zip (zip_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Metro偏远表';
-- 美国卡派-XMILES 邮编表
CREATE TABLE IF NOT EXISTS us_xmiles_zone (
id INT AUTO_INCREMENT PRIMARY KEY,
postcode VARCHAR(5) NOT NULL COMMENT '邮编',
area VARCHAR(20) COMMENT '地区',
INDEX idx_postcode (postcode)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国XMILES邮编分区表';
-- 美国卡派-AM 价格表
CREATE TABLE IF NOT EXISTS us_am_price (
id INT AUTO_INCREMENT PRIMARY KEY,
pu_zone VARCHAR(5) NOT NULL COMMENT 'PU区',
dl_zone VARCHAR(5) NOT NULL COMMENT 'DL区',
zone_combo VARCHAR(10) NOT NULL COMMENT '分区组合',
minimum_weight DECIMAL(10,2) NOT NULL COMMENT '最小重量',
maximum_weight DECIMAL(10,2) NOT NULL COMMENT '最大重量',
fee_without_sc DECIMAL(10,2) COMMENT '无附加费价格',
shipping_cost DECIMAL(10,2) COMMENT '运费',
surcharge DECIMAL(10,2) DEFAULT 0 COMMENT '附加费',
INDEX idx_zone_combo (zone_combo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国AM卡派价格表';
-- 美国卡派-AM 邮编表
CREATE TABLE IF NOT EXISTS us_am_postcode (
id INT AUTO_INCREMENT PRIMARY KEY,
zip_code VARCHAR(5) NOT NULL COMMENT '邮编',
zone VARCHAR(5) NOT NULL COMMENT '分区',
INDEX idx_zip (zip_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国AM卡派邮编表';
-- ============================================
-- 澳洲物流价格表
-- ============================================
-- 澳洲eparcel价格表
CREATE TABLE IF NOT EXISTS au_eparcel_price (
id INT AUTO_INCREMENT PRIMARY KEY,
post VARCHAR(20) NOT NULL COMMENT '邮寄方式',
weight_0_5 DECIMAL(10,2) COMMENT '0.5kg价格',
weight_1 DECIMAL(10,2) COMMENT '1kg价格',
weight_2 DECIMAL(10,2) COMMENT '2kg价格',
weight_3 DECIMAL(10,2) COMMENT '3kg价格',
weight_4 DECIMAL(10,2) COMMENT '4kg价格',
weight_5 DECIMAL(10,2) COMMENT '5kg价格',
weight_7 DECIMAL(10,2) COMMENT '7kg价格',
weight_10 DECIMAL(10,2) COMMENT '10kg价格',
weight_15 DECIMAL(10,2) COMMENT '15kg价格',
INDEX idx_post (post)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲eparcel价格表';
-- 澳洲eparcel邮编表
CREATE TABLE IF NOT EXISTS au_eparcel_zone (
id INT AUTO_INCREMENT PRIMARY KEY,
postcode VARCHAR(10) NOT NULL COMMENT '邮编',
zone VARCHAR(10) COMMENT '分区',
INDEX idx_postcode (postcode)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲eparcel邮编表';
-- 澳洲toll价格表
CREATE TABLE IF NOT EXISTS au_toll_price (
id INT AUTO_INCREMENT PRIMARY KEY,
post VARCHAR(20) NOT NULL COMMENT '邮寄方式',
zone_1 DECIMAL(10,2) COMMENT '1区价格',
zone_2 DECIMAL(10,2) COMMENT '2区价格',
zone_3 DECIMAL(10,2) COMMENT '3区价格',
zone_4 DECIMAL(10,2) COMMENT '4区价格',
INDEX idx_post (post)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲toll价格表';
-- 澳洲toll邮编表
CREATE TABLE IF NOT EXISTS au_toll_zone (
id INT AUTO_INCREMENT PRIMARY KEY,
postcode VARCHAR(10) NOT NULL COMMENT '邮编',
zone VARCHAR(10) COMMENT '分区',
INDEX idx_postcode (postcode)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲toll邮编表';
-- 澳洲toll偏远表
CREATE TABLE IF NOT EXISTS au_toll_remote (
id INT AUTO_INCREMENT PRIMARY KEY,
postcode VARCHAR(10) NOT NULL COMMENT '邮编',
remote_type VARCHAR(20) COMMENT '偏远类型',
INDEX idx_postcode (postcode)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲toll偏远表';
-- 澳洲allied价格表
CREATE TABLE IF NOT EXISTS au_allied_price (
id INT AUTO_INCREMENT PRIMARY KEY,
post VARCHAR(20) NOT NULL COMMENT '邮寄方式',
zone_1 DECIMAL(10,2) COMMENT '1区价格',
zone_2 DECIMAL(10,2) COMMENT '2区价格',
zone_3 DECIMAL(10,2) COMMENT '3区价格',
zone_4 DECIMAL(10,2) COMMENT '4区价格',
INDEX idx_post (post)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲allied价格表';
-- 澳洲allied邮编表
CREATE TABLE IF NOT EXISTS au_allied_zone (
id INT AUTO_INCREMENT PRIMARY KEY,
postcode VARCHAR(10) NOT NULL COMMENT '邮编',
zone VARCHAR(10) COMMENT '分区',
remote_zone VARCHAR(10) COMMENT '偏远分区',
INDEX idx_postcode (postcode)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲allied邮编表';
-- 澳洲allied偏远表
CREATE TABLE IF NOT EXISTS au_allied_remote (
id INT AUTO_INCREMENT PRIMARY KEY,
postcode VARCHAR(10) NOT NULL COMMENT '邮编',
remote_type VARCHAR(20) COMMENT '偏远类型',
INDEX idx_postcode (postcode)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲allied偏远表';
-- ============================================
-- 欧洲物流价格表
-- ============================================
-- 欧洲卡派-DHL价格表
CREATE TABLE IF NOT EXISTS eur_dhl_price (
id INT AUTO_INCREMENT PRIMARY KEY,
price_type VARCHAR(20) NOT NULL COMMENT '价格类型',
country VARCHAR(50) NOT NULL COMMENT '国家',
postalcode VARCHAR(10) COMMENT '邮编',
ip_1 DECIMAL(10,2) COMMENT '1IP价格',
ip_2 DECIMAL(10,2) COMMENT '2IP价格',
ip_3 DECIMAL(10,2) COMMENT '3IP价格',
ip_4 DECIMAL(10,2) COMMENT '4IP价格',
ip_5 DECIMAL(10,2) COMMENT '5IP价格',
ip_6 DECIMAL(10,2) COMMENT '6IP价格',
INDEX idx_country (country)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='欧洲DHL卡派价格表';
-- ============================================
-- 物流公司配置数据
-- ============================================
INSERT INTO logistics_company (company_code, company_name, country, logistics_type, port, currency) VALUES
-- 英国
('UK_DPD', '智谷-DPD', 'UK', 'EXPRESS', 'DEFAULT', 'GBP'),
('UK_BIG', '智谷-大件', 'UK', 'COURIER', 'DEFAULT', 'GBP'),
('UK_KPZG', '海GB-卡派', 'UK', 'COURIER', 'DEFAULT', 'GBP'),
('UK_KPNV', '卡派-NV', 'UK', 'COURIER', 'DEFAULT', 'GBP'),
-- 美国
('US_FEDEX_PP', 'Fedex-邮差小马', 'US', 'EXPRESS', 'WEST', 'USD'),
('US_FEDEX_KH', 'Fedex-金宏亚', 'US', 'EXPRESS', 'WEST', 'USD'),
('US_FEDEX_HOME', 'Fedex-HOME', 'US', 'EXPRESS', 'WEST', 'USD'),
('US_FEDEX_GROUND', 'Fedex-GROUND', 'US', 'EXPRESS', 'WEST', 'USD'),
('US_GIGA', '大健-GIGA', 'US', 'COURIER', 'DEFAULT', 'USD'),
('US_CEVA', '大健-CEVA', 'US', 'COURIER', 'DEFAULT', 'USD'),
('US_METRO', 'Metro-SAIR', 'US', 'COURIER', 'DEFAULT', 'USD'),
('US_XMILES', 'XMILES-SAIR', 'US', 'COURIER', 'DEFAULT', 'USD'),
('US_AM_WEST', 'AM-美西', 'US', 'COURIER', 'WEST', 'USD'),
('US_AM_EAST', 'AM-美东', 'US', 'COURIER', 'EAST', 'USD'),
-- 澳洲
('AU_EPARCEL', 'AU-eparcel', 'AU', 'EXPRESS', 'DEFAULT', 'AUD'),
('AU_TOLL', 'AU-Toll', 'AU', 'COURIER', 'DEFAULT', 'AUD'),
('AU_ALLIED', 'AU-Allied', 'AU', 'COURIER', 'DEFAULT', 'AUD');