2014-04-16 138 views
-1

好的,只需重寫問題 - 以便直到現在看到我所做的以及我的問題的真正含義!PHP - 生成特殊的唯一ID

對於一個Web應用程序,我試圖構建我需要5個字符長的ID。我想使用A-Z和0-9來獲得更多可能的ID。如果現在剩下5個字符長的ID - 系統應該注意到它並更改爲6個字符 - 等等。

我已經知道如何使用我想使用的字符來構建ID - 但是我的問題是:是否有更好的方法來檢查ID是否已被使用或確保ID不能在用作generateID之間的遞歸 - >嘗試插入 - >失敗 - >重新啓動 - > ...?

+1

你有一些想法?你有什麼嘗試?請展示一些代碼。如果你不能爲谷歌煩惱「PHP - 生成特殊的唯一ID」,那麼我也不能。 – iambriansreed

+0

1.該列的'UNIQUE'索引2.在PHP中生成3.嘗試插入4.如果失敗'goto#2 'else'goto#5' 5.插入 – zerkms

+0

1到99999之間的數字怎麼樣? –

回答

0

對於這樣的事情,保證唯一性而不檢查的唯一方法是使用一些函數,它具有一對一的映射關係,已經保證是唯一的,比如數據庫中存在的記錄ID架構可能已經包含。我能想到的最簡單的情況是使用dechex($id)來獲取這樣的記錄ID的十六進制表示。

產生從數字ID,反之亦然類似YouTube的字母數字ID映射功能在這裏討論:Create Youtube-Like IDs With PHP/Python/Javascript/Java/SQL