购物车对于电商网站来说是一个非常重要的模块。
购物车是用户选择商品的一个缓存的地方。其中包含了商品的基本信息,例如:商品的描述,商品的价格,商品的数量等等。
对于这个缓存而言,实现的方式是有很多种的,当然也是各有优劣,简单说一下:
1.session:对话的时效性的问题,如果客户选购商品的途中浏览器突然关闭,服务端找不到cookie中的sessionid了,那么选购的商品就不存在了
2.cookie:只要添加了就一直存在,只要不是手动的去清除或者expires为默认的过期时间。但是安全性无法保证,而且也无法对客户的喜好进行定量的分析,有个数和长度的限制。
3.直接入数据库:添加商品就反复的读写数据库,硬件要求高,影响性能。数据持久存在
4.缓存数据库:先暂存进入类似redis的缓存数据库中,登录后再写入数据库,但是对硬件有要求
再反观各大电商网站,基本上分为三个流程:
一.例如淘宝,你浏览商品是可以的。但是如果你要添加商品到购物车的话就需要登录;
二.例如京东,无论是未登录还是登录的用户都可以使用将需要的商品添加入购物车内;
三.例如苏宁,添加购物车只显示商品个数,并不显示相关的商品信息,这里就不做讨论了。
如此看来,推 测淘宝的业务逻辑是比京东的要简单的。因为登录了话这些数据肯定就要入库了,淘宝财大气粗,技术精湛,数据全部入库对于淘宝来说也不是什么很大的问题。而 且这些用户的浏览数据还可以方便淘宝进行大数据的分析,对用户进行商品的推送,乃至于若干年后给你来一个这十年喜爱商品的统计等等。而且只要你加了,除非 你自己去删,要不然就等着你花钱来买!你怕不怕
具体怎么使用或者是结合使用就要看具体的场景和需求了,我们是选择了使用cookie作为购物车商品缓存的介质。
=========
可以保存到数据库里,采用sessionid作为用户唯一标识进行保存;
购物车表大概是这样的:id session_id user_id item_id
未登录,user_id=0,登录时,根据session_id更新一次user_id即可。