【发布时间】:2010-12-11 15:12:31
【问题描述】:
我想生成一个简短的唯一 ID,而无需检查冲突。
我目前正在做类似的事情,但我目前生成的 ID 是随机的,并且在循环中检查冲突很烦人,并且如果记录数量显着增长,将会变得很昂贵。
通常担心冲突不是问题,但我想要生成的唯一 ID 是一个简短的唯一字符串,由 5-8 个字符组成,字母数字,就像 tinyurl 一样。
编辑:我想从 5 个字符开始,如果我达到 6000 万个条目,然后转到 6.. 以此类推。
为此,我想我可以使用对用户隐藏的 auto_increment 值,并使用 MD5 或其他方法向用户显示以从中生成唯一字符串。
生成的字符串不应该是线性的,所以简单地将 auto_incremented ID 转换为base 36 [0-9A-Z] 有点过于简单,但我要使用类似的函数。
编辑:安全不是问题,因为这不会用于保护信息。它只是一个较长字符串的快捷方式。 谢谢。
感谢您的建议,对延误表示歉意。牙医..
【问题讨论】:
标签: php mysql unique auto-increment