我正在考虑使用$uniqueId = substr(md5(time() * mt_rand()),0,5);
为预订参考生成唯一ID。
但是这个生成的ID重复怎么样?如果数据库已经具有由此生成的相同ID,该怎么办?如果我使用它,会有多少百分比的机会生成相同的ID?
答案 0 :(得分:2)
从人的角度来看,md5不会提供良好的预订参考 - 例如,通过电话进行转发是非常尴尬的。
但从开发的角度来看,您可能不希望使用直接的自动增量,因为它可能会泄露有关业务规模的信息(数量较少可能表明客户很少并侵蚀客户信心)。
选项包括:
使用日期元素和与用户相关的内容生成引用。
例如2014/09/CUSTOMERSURNAME01
使用日期元素和随机
在所有选项中,快速调用数据库以检查唯一性将使您确信永远不会创建重复项。它不会增加太多的开销来检查,如果你再次尝试重复。不得不再次尝试两次的可能性非常低。