在MySQL中创建短唯一ID的最佳方法

时间:2011-04-12 21:30:49

标签: php mysql

我需要在MySQL中为php应用程序创建唯一的ID。我最大7个字符的ID是什么,我能想到的唯一想法就是使用创建的uid但是我想创建一个随机字符串而不仅仅是0000123等...我更喜欢AB738DD或者somthing之类的。

我想到的另一件事就是使用php生成一个id,然后检查db以查看它是否已经存在,如果没有匹配插入该id,唯一的问题是我认为会产生不需要的负载在mysql服务器和额外的查询。

还有其他人有其他想法吗?

由于

3 个答案:

答案 0 :(得分:1)

您可以使用time()然后将其转换为十六进制。它会给你8个字符。

dechex(time());

它将是独一无二的,除非我们回到过去,什么会很棒(不如未来,但仍然如此)。

答案 1 :(得分:0)

一种解决方案是存储整数,但在显示时将值转换为十六进制。 (显然这不是随机的,但它也不是全部数字。)

答案 2 :(得分:0)

创建一个包含您要允许的字符的字符串。然后存储一个整数id但是将它映射到一个以键的长度为模的字符串(如果你愿意,可以将它们加扰。)如果你愿意,可以在范围的中间某处开始。写一个简单的函数对将一个函数转换为另一个函数,只显示丑陋的函数。

通过这种方式,您可以使用已经过验证的简单资源。