B2C电子商务技术内幕(二)订单号的产生规则

    最近有朋友打电话问我应该如何来产生订单号,好多朋友在这里比较困扰并且也看到很多帖子在问如何来产生订单号,我想跟大家交流一下订单号的产生规则。


大家常用的几种方式:

     1.利用数据库种子表产生一个自增长的订单号

     2.日期+自增长数字的订单号

     3.产生随机的订单号


这几种订单号的方式个人觉得都可以,都有一些自己的优缺点

     第一种和第二种方式:简单、很容易知道自己订单的数量,但确定也同样的明显你的竞争对手也很容易知道你每天的订单数量

     第三种方式:每次都要到你的订单表去查一下是否产生的订单号已经使用过,性能损耗严重


个人认为订单号是一个保证唯一的在系统内部交换的号码,我在产生订单号的时候遵从“三不原则”:


     不要在订单号上体现订单的相关信息(比如订单时间)

     不要让你的竞争对手通过订单号得到你每天的订单量

     不要为了得到订单号消耗太多的性能


我在这里使用了种子表和Sin函数,先通过种子表产生一个顺序的ID,通过Sin函数来保证唯一性,再通过颠倒顺序来扰乱竞争对手,经过了实际测试订单在14亿之内是不会有重复的如果超过了14亿可以通过增位来解决问题。


数据库代码如下,希望得到大家的指正。

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值