Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mt#u rand和#x2B的准确性和独特性;time()生成的密钥用作预订参考ID?_Php_Mysql_Random - Fatal编程技术网

Php mt#u rand和#x2B的准确性和独特性;time()生成的密钥用作预订参考ID?

Php mt#u rand和#x2B的准确性和独特性;time()生成的密钥用作预订参考ID?,php,mysql,random,Php,Mysql,Random,我正在考虑使用$uniqueId=substr(md5(time()*mt_rand()),0,5)生成唯一的预订参考ID。 但是这个生成的ID的复制又如何呢?如果数据库已经具有与此生成的ID相同的ID,该怎么办?如果我使用它,有多少机会生成相同的ID?从人的角度来看,md5不会成为一个好的预订参考-例如,通过电话进行中继会非常尴尬 但从发展的角度来看,您可能不希望使用直接的自动增量,因为它可能会泄露有关业务规模的信息(低数字可能表明客户非常少,并削弱客户信心) 选择包括: 使用日期元素和与用

我正在考虑使用
$uniqueId=substr(md5(time()*mt_rand()),0,5)
生成唯一的预订参考ID。
但是这个生成的ID的复制又如何呢?如果数据库已经具有与此生成的ID相同的ID,该怎么办?如果我使用它,有多少机会生成相同的ID?

从人的角度来看,md5不会成为一个好的预订参考-例如,通过电话进行中继会非常尴尬

但从发展的角度来看,您可能不希望使用直接的自动增量,因为它可能会泄露有关业务规模的信息(低数字可能表明客户非常少,并削弱客户信心)

选择包括:

  • 使用日期元素和与用户相关的内容生成引用。 例如
    2014/09/CUSTOMERSURNAME01

  • 使用日期元素和随机变量


在所有选项中,快速呼叫数据库检查唯一性将使您确信您永远不会创建重复。这不会增加太多的检查开销,如果您得到一个重复的,请再试一次。必须重试两次的可能性非常低。

我非常确定
md5
字符串的前5个字符在某个时候会重复。我不会相信的。为什么不是1,2,3,4,5。。无法获得比自动递增数字更唯一的数字。或者你只是想让你的生活复杂化?因为只有5个符号,你会有很大的碰撞概率。使用
sha256
或其他一些算法来获得更长的哈希值。我需要一份标准的订房证明。。