簡體   English   中英

PHP 的 random_int 可以依賴於唯一的整數生成器嗎(合理)

[英]Can PHP's random_int be relied for unique integer genrator (reasonably)

我有一個應用程序,每年需要生成大約 20 萬個批次 ID。

我首先想到使用uniqid()來生成批處理 ID,但是這將返回字符串,與整數相比,它將在數據庫中占用大量空間。

因此,我的問題是,是否會random_int(1, 2147483647)來生成唯一數字?

僅供參考,通常2147483647PHP_INT_MAX

正如@Alex Howansky 所提到的,如果使用uniquid() ,數據庫大小幾乎沒有增加。

如果您的要求接近 100% 的唯一 ID,那么random 4 位整數將不會是唯一的。 它需要一些額外的位才能隨機且唯一。

我在我的應用程序中使用以下功能。 這具有更高的唯一性概率。 它使用 22 個字節而不是uniquid()的 13 個字節

function getUniqueId(){
  // will return 22 characters Unique string eg "5bcc2342652c2630171474"
  return str_replace('.', '', uniqid('',true));
}

如果您仍然需要僅使用整數。 然后,按照 Lawrence Cherone 的建議,您應該使用自動增量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM