微信点餐项目记录-数据库的设计

微信点餐项目记录

该项目是一个使用前后端分离的项目,主要做的工作为后端部分代码的编写,该项目基于springboot开发,Redis作为缓存,减轻MySQL的查询压力。主要包含商品仓库,订单管理,下单支付等模块。严格按照三层架构模式开发,并配有完整的单元测试代码。

微信点餐项目记录-数据库的设计_第1张图片
该项目涉及到上面五个数据库表,分别如上图所示。

1.商品类目表,主键为类目号,其他属性有类目名称和类型编号。如下图所示。
微信点餐项目记录-数据库的设计_第2张图片

// An highlighted block
-- 类目
create table `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`)
);

2.商品表,主键为商品号,它和类目表通过类目编号建立起联系。
微信点餐项目记录-数据库的设计_第3张图片

// An highlighted block
商品
create table `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_description` varchar(64) comment '描述',
    `product_icon` varchar(512) comment '小图',
    `product_status` tinyint(3) DEFAULT '0' COMMENT '商品状态,0正常1下架',
    `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`)
);

3.订单详情表,主键为订单详情号,它与订单表通过订单号建立起联系,与商品表通过商品名称,商品号,建立起联系。
微信点餐项目记录-数据库的设计_第4张图片

// An highlighted block
订单商品
create table `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`),
    key `idx_order_id` (`order_id`)
);

4.订单表,主键为订单号,这个里面涉及到很多买家的信息。它与订单详情表通过订单号建立起联系。
微信点餐项目记录-数据库的设计_第5张图片

// An highlighted block
订单
create table `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 '订单状态, 默认为新下单',
    `pay_status` tinyint(3) not null default '0' 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 (`order_id`),
    key `idx_buyer_openid` (`buyer_openid`)
);

5.卖家表,相当于老板,主键为卖家编号,它和上面四张表没有直接联系,但是有间接 的联系。如下图所示。
微信点餐项目记录-数据库的设计_第6张图片

// An highlighted block
卖家(登录后台使用, 卖家登录之后可能直接采用微信扫码登录,不使用账号密码)
create table `seller_info` (
    `seller_id` varchar(32) not null,
    `username` varchar(32) not null,
    `password` varchar(32) not null,
    `openid` varchar(64) not null comment '微信openid',
    `create_time` timestamp not null default current_timestamp comment '创建时间',
    `update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改时间',
    primary key (`seller_id`)
) comment '卖家信息表';

你可能感兴趣的:(JAVA学习笔记)