关于电商购物车与订单

选好一个商品,点击加入购物车的时候,你要把商品的id和用户的id放入购物车表里面,如果还有其他重要的标志性信息也可以放进去,这样用户就是退出商城,下次进入的时候,系统加载也可以去检索购物车表信息,当用户结算后,可以删除购物车的这行数据,把订单号价格以及其他数据放入其他表中,这样就对于该用户清空购物车了

 

这样做有什么办法减轻数据库的压力?

做数据拆分,商城这种数据量大的数据库,可以按时间拆分,一个月建一张表

 

当用户购买商品添加到购物车时没有进行登陆,如果我们用session来保存用户的数据那么我们就要考虑到这种情况,一旦用户关闭浏览器那么之前所保存的数据就会丢失,因此采用cookie来保存数据。当用户点击结账时,对用户进行登陆验证,然后判断cookie是否存在购买商品的信息。如果存在,就将cookie中的数据保存到mysql中,然后清空cookie信息,最后结账成功。

用户添加商品到购物车的时候必须进行登陆验证,然后才能将购买的商品直接保存在数据库,但是你有没有想过用户添加到购物车的商品,他不一定购买,因此我们额外增加了维护成本,但好处是用户能在何时何地都可以看到自己的购物信息。记住方式做任何电商网站,都要从用户的角度考虑。

就是说你购物的时候你有可能不是本网站的会员,但你又想购买商品,那么我们会给你提供一个特殊的帐号(游客)具体实现思路如下:当用户购买通过cookie保存,结账的时候用户又不想注册,我们通过获取他的手机号码和地址,然后后台自动生成一个普通用户,将数据保存在数据库中并清除cookie。

 

 

订单表

orders订单表
字段名 数据类型 默认值 允许非空 自动递增 备注
id int(11) NO 是 id
uid int(11) NO 会员id号
linkman varchar(32) NO 联系人
address varchar(255) NO 地址
code char(6) NO 邮编
phone varchar(16) NO 电话
addtime int(11) NO 购买时间
total double(8,2) NO 总金额
status tinyint(4) NO 状态0:新订单1:已发货2:已收货3:无效订单

detail订单详情表
字段名 数据类型 默认值 允许非空 自动递增 备注
id int(11) NO 是 id
orderid int(11) NO 订单id号
goodsid int(11) NO 商品id号
name varchar(32) NO 商品名称
prince double(6,2) NO 单价
num int(11) NO 数量

 

 

订单号唯一

uniqid()函数

posted @ 2017-06-14 15:20  小耳朵李文文  阅读(3398)  评论(0编辑  收藏  举报