使用PHP uniqid函数生成短唯一引用标识

时间:2015-12-22 06:31:07

标签: php mysql laravel-5 uniqueidentifier

我的目标是创建一个唯一的ID,将其附加到记录并将其存储在数据库中。 id应为alpha - numeric和short。我不想使用生成ID的自动增量方式,因为此ID将附加到URL的末尾,因此我不希望它是可猜测的。经过一些研究后,我决定使用uniqid(),因为我知道它是基于时间生成的。

我担心它会在整个系统中独一无二,并且有机会 如果我要使用多个服务器和集群扩展我的系统,那么id会重复吗?

在将值插入数据库之前,我不想进行重复检查,因为这会随着记录的增加而影响性能。

我正在使用Larvel框架。任何人都可以建议任何其他解决方案来解决这个问题。我是laravel的新手。

提前致谢

1 个答案:

答案 0 :(得分:0)

感谢所有建议。我决定使用带有前缀的uniqid()作为user_id。由于uniqid()与系统时间相关,并且当同时发出两个请求命中服务器时可能会导致冲突,user_id前缀将确保即使同时发出请求,它也会生成不同的ID,因为与每个请求关联的user_id将不同。 / p>