日期:2014-05-18  浏览次数:20397 次

急求购物车完美解决方案.
我想问一下大家平时做购物车系统时.对购物车表 是如何存取的?
我看了一下,有两种方案.一种是用session这个方案比较成熟.不错的,但是session要保存好多好多的数据.这不是我们应该追求(session一多.服务器就会把多的放弃了呀.对这样的系统来说不行)
另一种方案是用.一个数据库表了.一旦用户购物成功.我们将把你的数据转移到另外一个表.同时删除购物车表中该用户的购物信息.
但是这样表面看似完美的.但是我们仔细一想.这样不好.假若用户没有成功购物.我们也自然不万能删除购物车表中的数据(因为我们假定只有购物成功才会执行删除代码的)这样当用户再一次购物时麻烦就来.它就会把用户以前的购物情况也算进出.就会另用户发惊讶了呀(怎么会多几条记录呢?).这个问题困扰我半个多月了呀,始终没有解决方法.请高手帮助!

------解决方案--------------------
如果你用数据库,就要用事务来处理。

另外也可以用cookie购物车
------解决方案--------------------
参考
http://www.cnblogs.com/shunyao8210/archive/2008/11/08/1315181.html
http://www.cnblogs.com/wengjinbao/articles/593715.html
------解决方案--------------------
这个数据库能保证成功还是不成功吧,肯定需要用数据库事务保证的,比如你这个人买了某个东西,其实这个东西已经被卖空了,那这个是失败的购物操作,添加程序就应该回滚。不会添加到购物表。

和上面一样,最后一步订单不能生成成功,我觉得就应该回滚到最原来状态。

你没有生成订单,就是你没有实际买东西。你也消耗了库存,这是不合理的啊。
------解决方案--------------------
探讨
如果你用数据库,就要用事务来处理。

另外也可以用cookie购物车

------解决方案--------------------
我用的是session的。我也不知道哪个更好。每一个用户来的都把他们自己的物品放到购物车中。在把商品保存到session中
------解决方案--------------------
引用楼主 qiuqingpo 的帖子:
但是这样表面看似完美的.但是我们仔细一想.这样不好.假若用户没有成功购物.我们也自然不万能删除购物车表中的数据(因为我们假定只有购物成功才会执行删除代码的)这样当用户再一次购物时麻烦就来.它就会把用户以前的购物情况也算进出.就会另用户发惊讶了呀(怎么会多几条记录呢?).这个问题困扰我半个多月了呀,始终没有解决方法.请高手帮助!