生成大规模系统的唯一编号

时间:2012-09-17 17:53:49

标签: math random e-commerce id-generation purchase-order

我们大多数人都看到,当我们从像亚马逊这样的网站购买时,我们会得到一个订单号或购买号(10-12位数),看起来像一个随机数。同样,我想为大规模系统生成唯一ID。生成它的最佳算法是什么?

我认为某些方法效率不高或不适用于大规模系统

1) Generating string using rand function ( Array.new(12){rand(10)}.join) and checking 
   whole table whether it is exists. It is time consuming, inefficient and may struck 
   in infinite loop.
2) Using time-stamp - I think this cannot be used for large scale system because large
   no. user can excess system at same time.
3) Combination of 1) & 2) also creates issue as second when it generates same 1)   
Auto increment : I don't want to use. 

2 个答案:

答案 0 :(得分:1)

是否有正常UUID不起作用的原因?它会产生更长的id,但它很简单,它可以工作,并且大多数语言都内置了生成代码。

答案 1 :(得分:0)

这个大型系统必须包含某种数据库,因此在数据库中添加一个自动递增的整数。没有这些独特的整数 如果有些人从未使用过,请担心。