SpringBoot 微信点餐系统 1:数据库表设计

项目设计

买家,手机端
卖家,PC 端

功能分析

买家 -> 查询商品 -> 创建/取消订单 -> 支付
卖家 -> 查询/取消/接受订单 -> 管理商品 -> 退款

部署架构

微信/浏览器 -> ng -> tomcat -> redis/mysql

数据库设计

1. product_info

注意点:

  1. 因为自增类型有上限,所以不能使用自增类型作为主键。
  2. 字符串长度一般设为2的n次方,这样才是整数。
  3. update_time timestamp not null default current_timestamp on update current_timestamp comment '修改时间'。注意默认当前时间default current_timestamp,on update current_timestamp,可以在修改的时候自动更新时间.
  4. 查看数据库版本,sql语句,select version();
  5. 一般根据商品 product_id 来查询,所以把 product_id 设为主键。

完整建表语句:

create table wxorder_product_info(
    `product_id` varchar(32) not null,
    `product_name` varchar(64) not null comment '商品名称',
    `product_price` decimal(8,2) not null comment '单价',
    `product_stock` int not null comment '库存',
    `product_desciption` varchar(64) comment '描述',
    `product_icon` varchar(512) comment '小图,存放的是链接',
    `category_type` int not null comment '类目标号',
    `create_time` timestamp not null default current_timestamp comment '创建时间',
    `update_time` timestamp not null default current_timestamp on update current_timestamp  comment '修改时间',
    primary key (`product_id`)
)comment '商品表';

2. product_info

注意点 :

  1. 为什么不用id作为类目编号,因为类目编号...(不太理解)
  2. 类目编号是唯一的,所以要加约束索引。
create table `wxorder_product_category`(
        `category_id` int not null auto_increment,
        `category_name` varchar(64) not null comment '类目名字',
        `category_type` int not null comment '类目编号',
        `create_time` timestamp not null default current_timestamp comment '创建时间',
        `update_time` timestamp not null default current_timestamp on update current_timestamp comment '更新时间',
        primary key (`category_id`),
        unique key `uqe_category_type` (`category_type`)
) comment '类目表';

3. order_master

create table `wxorder_order_master`(
    order_id varchar(32) not null,
    buyer_name varchar(32) not null comment '买家名字',
    buyer_phone varchar(32) not null comment '买家电话',
    buyer_address varchar(128) not null comment '买家地址',
    buyer_openid varchar(64) not null comment '买家微信openid',
    order_amount decimal(8,2) not null comment '订单总金额',
    order_status tinyint(3) not null default 0 comment '订单状态,0未下单',
    pay_status tinyint(3) not null default 0 comment '支付状态,0未支付',
    create_time timestamp not null default current_timestamp comment '创建时间',
    update_time timestamp not null default current_timestamp on update current_timestamp comment '修改时间',
    primary key (`order_id`),
    key key_buyer_openid (`buyer_openid`)
)comment '订单表';

4. wxorder_order_detail

create table `wxorder_order_detail`(
    detail_id varchar(32) not null,
    order_id varchar(32) not null,
    product_id varchar(32) not null,
    product_name varchar(64) not null comment '商品名称',
    product_price decimal(8,2) not null comment '商品价格',
    product_quantity int not null comment '商品数量',
    product_icon varchar(512) comment '商品小图',
    create_time timestamp not null default current_timestamp comment '创建时间',
    update_time timestamp not null default current_timestamp on update current_timestamp comment '修改时间',
    primary key (`detail_id`),
    index `idx_order_id` (`order_id`)
) comment '订单详情';

5. wxorder_order_master


你可能感兴趣的:(SpringBoot 微信点餐系统 1:数据库表设计)