PHP - 生成特殊的唯一ID

时间:2014-04-16 21:49:41

标签: php mysql

好的,所以只需重写问题 - 这样你就可以看到我到目前为止所做的事情以及我的问题的真正含义!

对于Web应用程序我正在尝试构建我需要5个字符长的ID。我想使用A-Z和0-9来获取更多可能的ID。如果现在剩下5个字符的长ID - 系统应该注意它并更改为6个字符 - 依此类推。

我已经知道如何使用我想要使用的字符构建ID - 但我的问题是:是否有更好的方法来检查ID是否已被使用或确保ID无法使用在generateID - >之间进行递归尝试插入 - >失败 - >重启 - > ......?

1 个答案:

答案 0 :(得分:0)

对于类似这样的事情,保证唯一性而不进行检查的唯一方法是使用一些具有一对一映射的函数,该映射已经保证是唯一的,例如数据库模式的现有记录ID可能已经包含了。我能想到的最简单的情况是使用dechex($id)来获取这种记录ID的十六进制表示。

此处讨论了从数字ID生成类似YouTube的字母数字ID的映射函数,反之亦然:Create Youtube-Like IDs With PHP/Python/Javascript/Java/SQL