电商中的订单号如何实现

订单是整个电子商务的核心,整个电子商务的流程也是围绕订单展开的;本文与大家分享一下各大电子商务网站订单号的生成方式。

首先我们要先知道订单号是什么?

它是您在购物网站购物后获得的订单号,记录的是购物订单信息;在您需要与购物网站进行订单查询等操作时,需要给购物网站提供商家订单号。

大部分的几种常见下单途径如下?

  1.  Web网站下单。
  2. 打电话到呼叫中心(CallCenter)下单。
  3. 手机Wap下单。

订单的一些规则

订单命名规定

  • 唯一性

这个大家都明白,主要保证订单号不重复。

扫描二维码关注公众号,回复: 4837236 查看本文章
  • 安全性

订单编号不能透露你公司的真实运营信息,比如你的订单就是流水号的话,那么别人就可以从订单号推测出你公司的整体运营概括了。所以订单编码必须是除了你们公司少部分人外,其他人基本看不懂的。可以参考京东和淘宝的编码规则。

  • 不能使用大规模随机码

因为大规模的随机码随机生成,因为本身就没有意义所以无所谓泄密了。但是事实上这种编码规则在实现上会有很大问题的。随机码满足第二点安全性要求,为了满足唯一性,那就得在生成随机码的时候对比历史数据是否有重复,如果你的订单数量到达了十万次,你每次生成订单编码时就得对比十万条历史数据。

这里有同学可能会问:随机码就不能在编码中使用了吗?

小规模的随机码是可以使用的,比如2~3位,这种随机码一般都是和流水号等结合使用,主要作用是为了隐藏流水号的真实数据而进行使用的。

  • 防止并发

主要针对编码中有时间的设定。

  • 控制位数

订单号的作用就是便于查询。一般正常使用场景应该是订单出异状或者退货的时候,用户将订单号报给客服,由客服进行查询。所以一般在10~15位为好。目前京东11位,淘宝16位。

直接进入主题,我们生成订单号有很多方案

方案一:业务号+年(年份后两位)+月+日+订单数。核心逻辑,新建一张订单表维护每天的订单新增数量,生成订单时,从表中查询到订单数,组合上面的其他几项行成新的订单号码。

方案二:新建一张全局订单表,存放一个自增的id字段,每次生成订单号时候,在全局订单表中插入一条记录,使用id作为新订单的订单号。

以上两中方案都能解决在分库分表的情况下保证订单号的唯一性,但是每次生成订单号的时候都需要去一张表中插入(更新)一条记录。在高并发下会存在性能瓶颈问题。

方案三:业务编码+时间戳+机器编号【前4位】+随机4位数+毫秒数

猜你喜欢

转载自blog.csdn.net/qq_42611547/article/details/86081009
今日推荐