参照淘宝的主要功能,主要设计成4个表,表之间的关系为
运费模板主表:包邮条件表 = 1:n
运费模板主表:运送方式表 = 1:n
运送方式表:运费模板地区信息表 = 1:n
包邮条件表:运费模板地区信息表 = 1:n
当运费模板主表的是否指定条件包邮 = 是的时候,包邮条件表起作用
1、运费模板主表
CREATE TABLE `supplier_template` (
`template_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主表主键ID',
`template_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '模板名称',
`province` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '宝贝地址 省份',
`city` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '宝贝地址 市',
`region` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '宝贝地址 区',
`ship_time` int(11) NULL DEFAULT 24 COMMENT '发货时间 小时数',
`free_post` tinyint(1) NULL DEFAULT 1 COMMENT '是否包邮 0:不包邮 1:包邮',
`pricing_manner` tinyint(1) NULL DEFAULT 1 COMMENT '计价方式 1:按件数 2:按重量 3:按体积',
`is_free_post_condition` tinyint(1) NULL DEFAULT 0 COMMENT '是否指定条件包邮 0:否 1:是',
`is_delete` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0:使用中 1:已删除',
`create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`template_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '运费模板主表' ROW_FORMAT = Compact;
2、包邮条件表
CREATE TABLE `supplier_template_freepost` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '包邮条件表主键',
`fareid` bigint(20) NULL DEFAULT NULL COMMENT '关联邮费模板表[template]主键',
`pieceno` int(11) NULL DEFAULT NULL COMMENT '包邮件数',
`weightno` decimal(18, 2) NULL DEFAULT NULL COMMENT '包邮重量',
`bulkno` decimal(18, 2) NULL DEFAULT NULL COMMENT '包邮体积',
`amount` int(11) NULL DEFAULT NULL COMMENT '包邮金额',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '包邮条件表' ROW_FORMAT = Compact;
3、运费模板地区信息表*(type为运费地区时,table_id中存储的是运送方式表的id。type为包邮地区时,table_id中存储的是包邮条件表表的id)*
CREATE TABLE `supplier_template_region` (
`id` bigint(20) NOT NULL DEFAULT 1 COMMENT '运费模板地区信息表',
`type` tinyint(1) NULL DEFAULT NULL COMMENT '类别 1:运费地区 2:包邮地区',
`table_id` bigint(20) NULL DEFAULT NULL COMMENT '关联表主键ID',
`province` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '宝贝地址 省份',
`city` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '宝贝地址 市',
`region` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '宝贝地址 区',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '运费模板地区信息表' ROW_FORMAT = Compact;
4、运送方式表
CREATE TABLE `supplier_template_ship` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '运送方式表主键',
`fareid` bigint(20) NULL DEFAULT NULL COMMENT '关联邮费模板表[template]主键',
`first_piece` int(11) NULL DEFAULT NULL COMMENT '首件数量',
`first_weight` decimal(18, 2) NULL DEFAULT NULL COMMENT '首重重量 KG',
`first_bulk` decimal(18, 2) NULL DEFAULT NULL COMMENT '首体积 立方米',
`first_amount` int(11) NULL DEFAULT NULL COMMENT '首费',
`second_piece` int(11) NULL DEFAULT NULL COMMENT '续件',
`second_weight` decimal(18, 2) NULL DEFAULT NULL COMMENT '续重 KG',
`second_bulk` decimal(18, 2) NULL DEFAULT NULL COMMENT '续体积 立方米',
`second_amount` int(11) NULL DEFAULT NULL COMMENT '续费',
`carry_way` tinyint(1) NULL DEFAULT 0 COMMENT '运送方式 0:快递 1:EMS 2:平邮',
`is_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否默认 0:否 1:是',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '运送方式表' ROW_FORMAT = Compact;