【发布时间】:2013-01-18 08:07:08
【问题描述】:
我必须为我的数据库中的每个“公司”创建唯一代码。
我认为这可能的唯一方法是使用rand() 创建一个随机数,然后检查数据库中是否存在该“公司”的数字,如果它确实重新创建。
我的问题是:有没有更好的方法来做到这一点 - 一种更有效的方法。好像我正在创建 10 000 个代码并且数据库中已经有 500 000 个代码,它会越来越慢。
有什么想法或提示可能是更好的方法吗?
编辑:
对不起,也许我可以解释得更好。这些代码不会同时生成,它们可以每天/每月/每年创建一次。
另外,我需要能够定义代码的字符,例如,字母数字或仅数字
【问题讨论】:
-
必须是代码吗?你能在mysql中使用AUTO_INCREMENT吗?如果不是,您可以尝试一个具有足够多数字的随机数(即,它太大以至于需要很长时间才能解决系统速度变慢的问题)第三个是将随机数与随机挑选的字符结合起来为它提供更多的可能性和更少的机会来减慢系统速度。
-
这不是独一无二的。另一个问题是关于仅生成随机数字。两个答案都大不相同。