订单和仓配实体-电商数据库设计及优化学习笔记

一、背景

这里是我的电商数据库设计及优化学习笔记中的订单模块设计和仓配模块设计。
因为订单和仓配联系紧密,所以这里放到一起来看。

二、数据库设计

订单实体:
下单用户 收货人 省市区 详细地址 邮编 支付方式 手机号 支付金额 优惠金额 运费 物流信息 订单积分 状态 下单时间 收货时间 支付时间 订单商品(商品名称 商品价格 仓库信息 (仓库名称 电话 联系人 地址)商品数量)
订单主表

CREATE TABLE order_master(
    order_id INT UNSIGNED auto_increment NOT NULL COMMENT '订单id',
    order_sn BIGINT UNSIGNED NOT NULL COMMENT '订单编号yyyymmddnnnnnnnn',
    customer_id INT UNSIGNED NOT NULL COMMENT '下单人id',
    shipping_user VARCHAR(10) NOT NULL COMMENT '收货人姓名',
    province SMALLINT NOT NULL COMMENT '省',
    city SMALLINT NOT NULL COMMENT '市',
    district SMALLINT NOT NULL COMMENT '区',
    address VARCHAR(100) NOT NULL COMMENT '地址',
    payment_method TINYINT NOT NULL COMMENT '支付方式:1现金 2 余额 3 网银 4 支付宝 5微信',
    order_money DECIMAL(8,2) NOT NULL COMMENT '订单金额',
    district_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '优惠金额',
    shipping_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '运费金额',
    payment_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '支付金额',
    shipping_comp_name VARCHAR(10) COMMENT '快递公司名称',
    shipping_sn VARCHAR(10) COMMENT '快递单号',
    create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '下单时间',
    shipping_time datetime COMMENT '发货时间',
    pay_time datetime COMMENT '支付时间',
    receive_time datetime COMMENT '收货时间',
    order_status TINYINT NOT NULL DEFAULT 0 COMMENT'订单状态',
    order_point INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单积分',
    invoice_title VARCHAR(100) COMMENT '发票抬头',
    modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY pk_orderid(order_id)
    )ENGINE =INNODB COMMENT'订单主表';

订单详情表

CREATE TABLE order_detail(
    order_detail_id INT UNSIGNED auto_increment NOT NULL COMMENT '订单详情表id',
    order_id INT UNSIGNED NOT NULL COMMENT '订单表id',
    product_id INT UNSIGNED NOT NULL COMMENT '订单商品id',
    product_name VARCHAR(10) NOT NULL COMMENT '商品名',
    product_cnt INT NOT NULL DEFAULT 1 COMMENT '购买商品数量',
    product_price DECIMAL(8,2) NOT NULL COMMENT '商品单价',
    average_cost  DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '平均成本价格',
    weight FLOAT COMMENT '商品重量',
    fee_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '优惠分摊金额',
    w_id INT UNSIGNED NOT NULL COMMENT '仓库id',
    modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY pk_orderdetailid(order_detail_id)
    )ENGINE =INNODB COMMENT'订单详情表';

购物车表

CREATE TABLE order_cart(
    cart_id INT UNSIGNED auto_increment NOT NULL COMMENT '购物车id',
    customer_id INT UNSIGNED NOT NULL COMMENT '用户id',
    product_id INT UNSIGNED NOT NULL COMMENT '商品id',
    product_amount INT NOT NULL COMMENT '加入购物车商品数量',
    price DECIMAL(8,2) NOT NULL COMMENT '商品价格',
    add_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '加入购物车时间',
    modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY pk_cartid(cart_id)
    )ENGINE =INNODB COMMENT'购物车表';

仓库信息表

CREATE TABLE warehose_info(
    w_id INT UNSIGNED auto_increment NOT NULL COMMENT '仓库id',
    warehose_sn CHAR(5) NOT NULL COMMENT '仓库编码',
    warehose_name VARCHAR(10) NOT NULL COMMENT '仓库名称',
    warehose_phone VARCHAR(20) NOT NULL COMMENT '仓库电话',
    province SMALLINT NOT NULL COMMENT '省',
    city SMALLINT NOT NULL COMMENT '市',
    district SMALLINT NOT NULL COMMENT '区',
    address VARCHAR(100) NOT NULL COMMENT '地址',
    warehose_status TINYINT NOT NULL DEFAULT 1 COMMENT '仓库状态:0禁用 1启用',
    modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY pk_wid(w_id)
    )ENGINE =INNODB COMMENT'仓库信息表';

商品库存表

CREATE TABLE warehose_product(
    wp_id INT UNSIGNED auto_increment NOT NULL COMMENT '商品库存id',
    product_id INT UNSIGNED NOT NULL COMMENT '商品id',
    w_id INT UNSIGNED NOT NULL COMMENT '仓库id',
    current_cnt INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '当前商品数量',
    lock_cnt INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '当前占用数据',
    in_transit_cnt INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '在途数据',
    average_cost DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '移动加权成本',
    modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY pk_wpid(wp_id)
    )ENGINE =INNODB COMMENT'商品库存表';

物流公司信息表

CREATE TABLE shipping_info(
    ship_id TINYINT UNSIGNED auto_increment NOT NULL COMMENT '主键id',
    ship_name VARCHAR(20) NOT NULL COMMENT '物流公司名称',
    ship_contact VARCHAR(20) NOT NULL COMMENT '物流公司联系人',
    telphone VARCHAR(20) NOT NULL COMMENT '物流公司电话',
    price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '配送价格',
    modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    PRIMARY KEY pk_shipid(ship_id)
    )ENGINE =INNODB COMMENT'物流公司信息表';

三、小结

这一部分的表有以下内容:
订单主表
订单详情表
购物车表
仓库信息表
商品库存表
物理公司信息表。

猜你喜欢

转载自blog.csdn.net/qq_40916110/article/details/80764622