快速业务通道

一些关于购物车的想法

作者 佚名技术 来源 ASP编程 浏览 发布时间 2012-03-12
分其他行业不太一样,票务行业的在线选座成功订单的判断标准为是否已经成功支付,就是说除非你给钱了,不然只能给你留十分钟。

问题: 3.订单和订单明细同购物车的关系
我想这个问题可能一直是此类网站的一个大问题吧!前两天,CSTP的陈老师还曾在电话中面试我这道题,我当时很紧张,问题答的不是很清楚。其实这个问题简单的想并不难:两个表订单和明细,订单表中每列指向明细表中的对应列。外键就是订单表中的订单号。

回复: 这个问题比较简单,一种是放购物车里就当是订单了,拿一个状态标识一下,这种状态下订单是可修改的,购物车合并进订单系统(注意处理用户登录与非登录状态);第二种是有单独的购物车表,当最终提交订单时,复制购物车内的信息进订单和订单明细表。后一种用得比较多一些,具体选择哪个取决于行业和商品属性。

问题: 4.明细表中订单号的生成?
这个问题继承第3个问题,我一直不知道应该如何解决此问题。我有两个解决方案,一个是使用触发器,另一个是编程。前者在客户每次放入购物车中一种商品的同时增加一个明细,确认购买后生成订单,将明细表中的购买状态更改以触发触发器将生成一个订单号(当然这个订单号既可以在触发器中编程也可以是让订单表订单号的一列设置为自动生成序号)。后者将判断订单号,然后将其加1以生成新的订单号。但是这两个方案我总是觉得非常不好,很想知道在商用网站中订单号是如何处理的。

回复: 首先我个人认为触发器的方案不可取,理由不多说,不然又是一大坨。这里也有两种做法,一种是订单表自动生成编号,生成订单时,先写入订单表,然后取回订单号再更新订单明细表;另一种是按业务规则生成订单号,当订单号已知后随便先生成订单记录还是明细记录都可以,但是要保证明细记录最终一定有订单记录,不然会有很多诡异的明细项。后一种办法又有两种做法,一是订单号由数据库生成,一般采用临时表,好处是可以全业务通用流水号,另一种是订单号由程序生成,程序生成时可以使用GUID,但更好的办法是使用订单时间加标识值,时间部分可以根据订单量来确定粒度大小,标识部分采用有序编号,时间粒度还要考虑防止别人大概统计你的业务量(汗~~~这个也是另外的问题,很多做法,看情况了,改天有空再写个有关订单号生成的文章吧,先回复这么多,大概信息也够了……)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号