使用 PHP uniqid 函数生成简短的唯一参考 ID

Generating short unique reference id with PHP uniqid function

我的objective是创建一个唯一的id,附加到一条记录上,并存储在数据库中。 id 应该是字母数字和简短的。我不想使用生成 ID 的自动递增方式,因为此 ID 将附加到 url 的末尾,所以我不希望它被猜到。经过一些研究,我决定使用 uniqid() 因为我知道它是根据时间生成的。

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

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

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

的新手

提前致谢

感谢所有建议。我决定使用前缀为 user_id 的 uniqid()。由于 uniqid() 是系统时间相关的,当 2 个同时请求到达服务器时可能会导致冲突,user_id 前缀将确保即使同时请求到来,它也会生成不同的 ID,因为 user_id 关联每个请求都会不同。