关于电商购物车与订单

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

 

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

作数据拆分,商城这种数据量大的数据库,能够按时间拆分,一个月建一张表数据库

 

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

用户添加商品到购物车的时候必须进行登录验证,而后才能将购买的商品直接保存在数据库,可是你有没有想过用户添加到购物车的商品,他不必定购买,所以咱们额外增长了维护成本,但好处是用户能在什么时候何地均可以看到本身的购物信息。记住方式作任何电商网站,都要从用户的角度考虑。cookie

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

 

 

订单表函数

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 数量ui

 

 

订单号惟一code

uniqid()函数