我的目标是创建一个唯一的ID,将其附加到记录并将其存储在数据库中。 id应为alpha - numeric和short。我不想使用生成ID的自动增量方式,因为此ID将附加到URL的末尾,因此我不希望它是可猜测的。经过一些研究后,我决定使用uniqid(),因为我知道它是基于时间生成的。
我担心它会在整个系统中独一无二,并且有机会 如果我要使用多个服务器和集群扩展我的系统,那么id会重复吗?
在将值插入数据库之前,我不想进行重复检查,因为这会随着记录的增加而影响性能。
我正在使用Larvel框架。任何人都可以建议任何其他解决方案来解决这个问题。我是laravel的新手。
提前致谢
答案 0 :(得分:0)
感谢所有建议。我决定使用带有前缀的uniqid()作为user_id。由于uniqid()与系统时间相关,并且当同时发出两个请求命中服务器时可能会导致冲突,user_id前缀将确保即使同时发出请求,它也会生成不同的ID,因为与每个请求关联的user_id将不同。 / p>