新零售数据库(3):商品的库存设计

零售店与仓库,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='仓库商品库存表';

猜你喜欢

转载自www.cnblogs.com/xiaofeiyang/p/12465055.html