为了产生一个唯一的Id我想我必须在php中使用uniqid函数.
但默认情况下,uniqid会产生13位长的HEXA号码.
4f66835b507db
Run Code Online (Sandbox Code Playgroud)
我想将这个数字减少到7位数的NUMERIC数字,但我想保留单一性.可能吗 ?
4974012
Run Code Online (Sandbox Code Playgroud)
此号码将用作用户ID.身份验证将使用Id和密码完成.
有人说uniqid不是唯一的!这是一个糟糕的选择吗?
生成足够的记录后,任何"唯一"数字最终都会发生冲突.为了确保唯一性,您需要将生成的值存储到数据库中,并在生成下一个值时,需要检查是否没有冲突.
但是,实际上,应用程序通常会将ID生成为简单的序列1,2,3,...这样您知道在用完数据类型之前不会发生冲突(UINT通常是32位长,这给出了你有40亿个独特的ids).