我们大多数人都看到,当我们从像亚马逊这样的网站购买时,我们会得到一个订单号或购买号(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.
答案 0 :(得分:1)
是否有正常UUID不起作用的原因?它会产生更长的id,但它很简单,它可以工作,并且大多数语言都内置了生成代码。
答案 1 :(得分:0)
这个大型系统必须包含某种数据库,因此在数据库中添加一个自动递增的整数。没有这些独特的整数 如果有些人从未使用过,请担心。