在PHP / Mysql中生成随机数作为主键

时间:2011-07-16 09:12:08

标签: php mysql random

在php中生成字母数字随机数为8位的最佳方法是区分大小写? 我想使用这个唯一的数字存储在mysql数据库中,并使其成为主键。

4 个答案:

答案 0 :(得分:3)

切勿使用随机密钥作为主键。在大多数情况下,主键必须是唯一的,而随机数则不是。

E.g。

1 1 1 1 1 1 0 1 

也是8位随机数发生器的有效输出。

您应该使用自动增量字段或生成器来确保您的主键确实是唯一的。

如果你想拥有一个可能是唯一的标识符并且某种随机尝试使用mysql工具,例如:http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid

警告可能是多次重复插入。

答案 1 :(得分:1)

我认为您可以将项目中字段的哈希值(md5()或sha1()等)修剪为8个字符 - 尽管最终可能会发生冲突。

为什么不将主键字段设为AUTOINCREMENT?为什么需要8个字母数字字符?

答案 2 :(得分:1)

您可以使用uniqid功能。

但要确保你真的想这样做。 AUTOINCREMENT列可能是更好的解决方案。

答案 3 :(得分:0)

不是随机的,但如果您不希望您的ID是顺序的,那么也许您可以通过某种方式对它们进行加密。请参阅以下有关同一主题的问题:Simple integer encryption

相关问题