【发布时间】:2015-12-22 06:31:06
【问题描述】:
我的目标是创建一个唯一的 ID 将其附加到记录并将其存储在数据库中。 id 应该是字母数字和短的。我不想使用自动递增方式生成 ID,因为此 ID 将附加到 url 的末尾,所以我不希望它是可猜测的。经过一些研究,我决定使用 uniqid(),因为我知道它是基于时间生成的。
我担心它在整个系统中是否是独一无二的,是否有机会 如果我要使用多台服务器和集群扩展我的系统,ID 会重复吗??
我不想在将值插入数据库之前进行重复检查,因为随着记录的增加,随着时间的推移,这会影响性能。
我正在使用 Larvel 框架。任何人都可以提出任何其他解决方案来解决这个问题。我是 laravel 的新手。
提前致谢
【问题讨论】:
-
你有没有考虑用mysql内置的uuid()函数来代替?
-
@Shadow mysql uuid() 函数给出了大约 36 个字符长的结果,而 UUID_SHORT() 函数几乎是 17 个字符。我想要一些小东西
-
您有相互冲突的要求。你想要一些简短但全球独一无二的东西。
-
您可以在服务器名称/符号前面加上前缀,因此服务器 a 中的所有 uniqeid 都将以等开头。
标签: php mysql laravel-5 uniqueidentifier