零售店与仓库,n对m关系,建立关联表就只能从固定仓库进货。零售店库存和仓库库存处理。对应实体关系图如下:
先创建城市和省份表
CREATE TABLE t_province( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键', province VARCHAR(200) NOT NULL COMMENT '省份', is_deleted BOOLEAN NOT NULL DEFAULT 0 COMMENT '逻辑删除', UNIQUE unq_province(province) )COMMENT='省份表'; CREATE TABLE t_city( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键', city VARCHAR(200) NOT NULL COMMENT '城市', province_id INT UNSIGNED NOT NULL COMMENT '省份ID', is_deleted BOOLEAN NOT NULL DEFAULT 0 COMMENT '逻辑删除' )COMMENT='城市表'; INSERT INTO `t_province` VALUES (1, '北京', 0); INSERT INTO `t_province` VALUES (2, '上海', 0); INSERT INTO `t_province` VALUES (3, '天津', 0); INSERT INTO `t_province` VALUES (4, '重庆', 0); INSERT INTO `t_province` VALUES (5, '辽宁', 0); INSERT INTO `t_province` VALUES (6, '吉林', 0); INSERT INTO `t_province` VALUES (7, '黑龙江', 0); INSERT INTO `t_province` VALUES (8, '山东', 0); INSERT INTO `t_province` VALUES (9, '江苏', 0); INSERT INTO `t_province` VALUES (10, '浙江', 0); INSERT INTO `t_province` VALUES (11, '安徽', 0); INSERT INTO `t_province` VALUES (12, '福建', 0); INSERT INTO `t_province` VALUES (13, '江西', 0); INSERT INTO `t_province` VALUES (14, '广东', 0); INSERT INTO `t_province` VALUES (15, '广西', 0); INSERT INTO `t_province` VALUES (16, '海南', 0); INSERT INTO `t_province` VALUES (17, '河南', 0); INSERT INTO `t_province` VALUES (18, '湖南', 0); INSERT INTO `t_province` VALUES (19, '湖北', 0); INSERT INTO `t_province` VALUES (20, '河北', 0); INSERT INTO `t_province` VALUES (21, '山西', 0); INSERT INTO `t_province` VALUES (22, '内蒙古', 0); INSERT INTO `t_province` VALUES (23, '宁夏', 0); INSERT INTO `t_province` VALUES (24, '青海', 0); INSERT INTO `t_province` VALUES (25, '陕西', 0); INSERT INTO `t_province` VALUES (26, '甘肃', 0); INSERT INTO `t_province` VALUES (27, '新疆', 0); INSERT INTO `t_province` VALUES (28, '四川', 0); INSERT INTO `t_province` VALUES (29, '贵州', 0); INSERT INTO `t_province` VALUES (30, '云南', 0); INSERT INTO `t_province` VALUES (31, '西藏', 0); INSERT INTO `t_province` VALUES (32, '香港', 0); INSERT INTO `t_province` VALUES (33, '澳门', 0); INSERT INTO `t_province` VALUES (34, '台湾', 0); INSERT INTO `t_city` VALUES (1, '沈阳', 5, 0); INSERT INTO `t_city` VALUES (2, '大连', 5, 0); INSERT INTO `t_city` VALUES (3, '鞍山', 5, 0); INSERT INTO `t_city` VALUES (4, '长春', 6, 0); INSERT INTO `t_city` VALUES (5, '吉林', 6, 0); INSERT INTO `t_city` VALUES (6, '哈尔滨', 7, 0); INSERT INTO `t_city` VALUES (7, '齐齐哈尔', 7, 0); INSERT INTO `t_city` VALUES (8, '牡丹江', 7, 0);
商品和库存表如下:
CREATE TABLE t_warehouse( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键', city_id INT UNSIGNED NOT NULL COMMENT '城市ID', address VARCHAR(200) NOT NULL COMMENT '地址', tel VARCHAR(20) NOT NULL COMMENT '电话', `is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除', INDEX idx_city_id(city_id) )comment='仓库表'; CREATE TABLE t_warehouse_sky( warehouse_id INT UNSIGNED COMMENT '仓库ID', sku_id INT UNSIGNED COMMENT '商品ID', num INT UNSIGNED NOT NULL COMMENT '库存数量', unit VARCHAR(20) NOT NULL COMMENT '库存单位', `is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除', PRIMARY KEY (warehouse_id,sku_id) )COMMENT='仓库商品库存表';
零售店和商品
CREATE TABLE t_shop( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键', city_id INT UNSIGNED NOT NULL COMMENT '城市ID', address VARCHAR(200) NOT NULL COMMENT '地址', tel VARCHAR(20) NOT NULL COMMENT '电话', `is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除', INDEX idx_city_id(city_id) )comment='商店表'; CREATE TABLE t_shop_sku( shop_id INT UNSIGNED COMMENT '商店ID', sku_id INT UNSIGNED COMMENT '商品ID', num INT UNSIGNED NOT NULL COMMENT '库存数量', unit VARCHAR(20) NOT NULL COMMENT '库存单位', `is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除', PRIMARY KEY (shop_id,sku_id) )COMMENT='仓库商品库存表';