【发布时间】:2013-08-21 11:34:47
【问题描述】:
我想要一些生成器脚本来生成唯一的数字,但不是以一种顺序。我们需要卖票。
例如目前的票号是这样的:
100000
100001
100002
...
这样用户就可以看到卖出了多少。
如何生成唯一编号?
例如:
151647
457561
752163
...
我可以使用随机数生成器,但是如果没有生成这样的数字,我总是会检查数据库。
嗯,也许在该列上使用索引时 - 检查不会花费很长时间。
现在我还得得到最后一个卡号,如果我想给它加 1,但得到最后一个已经足够快了。
售出的门票越多,RNG 产生现有号码的机会就越大。因此,将来可能会进行更多检查。所以最好是取最后一个数字并由它生成下一个。
【问题讨论】:
-
使用
uniqid?请参阅:How unique is uniqid?。 -
这种问题可以通过保格式加密来解决,最近在IT-securityEncrypting short identifiers有一个回答。虽然我不知道 PHP 实现。