项目设计
买家,手机端
卖家,PC 端
功能分析
买家 -> 查询商品 -> 创建/取消订单 -> 支付
卖家 -> 查询/取消/接受订单 -> 管理商品 -> 退款
部署架构
微信/浏览器 -> ng -> tomcat -> redis/mysql
数据库设计
1. product_info
注意点:
- 因为自增类型有上限,所以不能使用自增类型作为主键。
- 字符串长度一般设为2的n次方,这样才是整数。
-
update_time timestamp not null default current_timestamp on update current_timestamp comment '修改时间'
。注意默认当前时间default current_timestamp
,on update current_timestamp
,可以在修改的时候自动更新时间. - 查看数据库版本,sql语句,
select version();
- 一般根据商品 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
注意点 :
- 为什么不用id作为类目编号,因为类目编号...(不太理解)
- 类目编号是唯一的,所以要加约束索引。
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