2012-07-26 97 views
0

我正在尋找關於生成像Google+或Facebook一樣的獨特大ID的良好做法。
現有的問題是生成一個獨特的ID而不是一個方向(uniqid()是一個好方法)。
我們可以依賴的東西基本上方興未艾像時間戳time()當用戶註冊,或ID的用戶表$id,可能的:
生成獨特的上升ID

  • ID = time() - 123456789 + $id
  • 或者只是用戶表的ID,如$id + 123456789
    如果我們總是添加相同的常量整數,我們不會碰到碰撞。

我們不能使用uniqid()來生成一個上升的ID。
並且爲了使數據庫的自動遞增步長超過1並不足以在所有情況下都有一個大整數。 你有什麼建議?

+0

爲什麼你想要大整數?這樣做的意義何在?只是好奇。 – Leri 2012-07-26 09:22:54

+0

你知道Facebook並沒有真正產生大的ID ...它只是來到那..反對我在Facebook上看到真正的小ID。只是說。 – 2012-07-26 09:23:20

+1

如果你真的想要大數字,我只需要使用總是唯一的表ID,並添加一個常數。 「問題」是經過一段時間(很長一段時間)後,你會得到10位數字的ID而不是9位數字。那就是:如果這讓你感到困擾。 – Matthias 2012-07-26 09:26:23

回答

2

你可能想看看這個答案,解釋如何生成V4 UUID在PHP here或看看這個帖子,是經過4種方式的creating unique IDs in PHP(其中一些涉及uniqid()雖然)