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