一些关于asp 购物车的想法(2)


回复: 首先说一下数据库服务器的负担,想一下每访问一个页面要对数据库进行多少次访问,然后想一下多次访问才能换来一次放购物车的操作(访问次数主要取决于网站易用性的设计,这是另外一个话题),所以,虽然在这里修改设计可以减轻一些数据库压力,但是这里并不是瓶颈,丁学认为不需要在这里太在意。
目前比较通用的做法,购物车的商品是不会立即扣减库存的,主要是为了防止有人通过购物车恶意占用商品,另外一般都会给一个冗余量,因为大部分购物车里的商品不会进入最终的成功订单,不可以让购物车影响销量,这是必须做到的。库存一般在订单成功提交的时候扣减库存,也就是用户在提交订单时,你还有一次机会提示用户没有库存了,所以更没有必须在放到购物车时就扣减库存。对于“成功订单”,并不是所有用户提交的订单都算成功订单,这里有一个自动审单的过程,这个程序不好写,但确实很重要,根据以前的数据分析、用户行为、用户信誉等经验性的数据来由系统在几分钟内自动对订单完成一次审核,审核力度与行业有关,这样可以杜绝大部分的假订单,其中一部分可能还要由自动审单系统转交人工审核。
这里有一个特殊情况,有一些特殊商品比如演唱会门票,可能会存在在线选座的行为,这种时候放购物车后留座变得比较有用,现在的做法一般是放购物车后立即留座,但某一段时间未成为真实订单的话就自动释放,比如十分钟,虽然无法完全杜绝恶意占座,不过可以解决多数问题。现在票务方面的成功订单和大部分其他行业不太一样,票务行业的在线选座成功订单的判断标准为是否已经成功支付,就是说除非你给钱了,不然只能给你留十分钟。
问题: 3.订单和订单明细同购物车的关系
我想这个问题可能一直是此类网站的一个大问题吧!前两天,CSTP的陈老师还曾在电话中面试我这道题,我当时很紧张,问题答的不是很清楚。其实这个问题简单的想并不难:两个表订单和明细,订单表中每列指向明细表中的对应列。外键就是订单表中的订单号。
回复: 这个问题比较简单,一种是放购物车里就当是订单了,拿一个状态标识一下,这种状态下订单是可修改的,购物车合并进订单系统(注意处理用户登录与非登录状态);第二种是有单独的购物车表,当最终提交订单时,复制购物车内的信息进订单和订单明细表。后一种用得比较多一些,具体选择哪个取决于行业和商品属性。
问题: 4.明细表中订单号的生成?
这个问题继承第3个问题,我一直不知道应该如何解决此问题。我有两个解决方案,一个是使用触发器,另一个是编程。前者在客户每次放入购物车中一种商品的同时增加一个明细,确认购买后生成订单,将明细表中的购买状态更改以触发触发器将生成一个订单号(当然这个订单号既可以在触发器中编程也可以是让订单表订单号的一列设置为自动生成序号)。后者将判断订单号,然后将其加1以生成新的订单号。但是这两个方案我总是觉得非常不好,很想知道在商用网站中订单号是如何处理的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2617.html