一些关于购物车的想法
入了购物车,那么这些数量的图书是否应该从库存中减去呢?当时我是这样做了。我将购物车中相应图书的数量从数据库中减去,以防止此时其他用户看到”虚”的库存数量(如果没有减去,那么其他用户是可以购买的。例如:库存中图书的数量是10本,客户A将10本放入自己的购物车,此时客户B也将10本放入自己的购物车,那么谁将购买到此书将成为一个矛盾)。不过我这样做的结果是,每当客户更新购物车的同时就会同数据库有一次交流,加大了数据服务器的负担。Amazon.cn在这方面做的也不是很好,前些日子相信大家可能都遇到了当购买《深入理解操作系统》一书的时候,本来生成了订单,但是却在第二天告知缺货的事情。这一事件确实非常影响Amazon.cn的信誉,不知道现在他们的系统是否已经解决这一问题,不过现在《深入理解操作系统》一书的Joyo价已经今非昔比了。不知道各位高手是如何解决这一问题的,欢迎大家将自己的成功经验写在评论中。
回复: 首先说一下数据库服务器的负担,想一下每访问一个页面要对数据库进行多少次访问,然后想一下多次访问才能换来一次放购物车的操作(访问次数主要取决于网站易用性的设计,这是另外一个话题),所以,虽然在这里修改设计可以减轻一些数据库压力,但是这里并不是瓶颈,丁学认为不需要在这里太在意。 目前比较通用的做法,购物车的商品是不会立即扣减库存的,主要是为了防止有人通过购物车恶意占用商品,另外一般都会给一个冗余量,因为大部分购物车里的商品不会进入最终的成功订单,不可以让购物车影响销量,这是必须做到的。库存一般在订单成功提交的时候扣减库存,也就是用户在提交订单时,你还有一次机会提示用户没有库存了,所以更没有必须在放到购物车时就扣减库存。对于“成功订单”,并不是所有用户提交的订单都算成功订单,这里有一个自动审单的过程,这个程序不好写,但确实很重要,根据以前的数据分析、用户行为、用户信誉等经验性的数据来由系统在几分钟内自动对订单完成一次审核,审核力度与行业有关,这样可以杜绝大部分的假订单,其中一部分可能还要由自动审单系统转交人工审核。 这里有一个特殊情况,有一些特殊商品比如演唱会门票,可能会存在在线选座的行为,这种时候放购物车后留座变得比较有用,现在的做法一般是放购物车后立即留座,但某一段时间未成为真实订单的话就自动释放,比如十分钟,虽然无法完全杜绝恶意占座,不过可以解决多数问题。现在票务方面的成功订单和大部 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |