我正在為一個家譜專案建立一個 Web 應用程式。我希望添加到資料庫中的每個人都有一個唯一的ID,該ID 基於其姓氏的前3 個字元(為了解釋起見,我們稱之為“姓氏字串”),並與自動增量(從00001代表每個唯一的“姓氏字串”)。
例如 - 一個人的姓氏是「Smith」。姓氏字串將為 SMI,並且由於它們是第一個姓氏字串“SMI”,因此完整參考將為 SMI00001。另一個人的姓氏是 Black,因此他們的姓氏字串為 BLA,並且因為他們是第一個具有姓氏字串 BLA 的人,所以他們的參考將是 BLA00001。第三個人的姓氏也是 Smith - 他們是第二個具有 SMI 姓氏字串的人,因此他們的參考號碼應該是 SMI00002。
此唯一 ID 將在人員 URL 中使用,供資料庫中的人員搜尋並在人員之間建立關係。
我不知道如何從邏輯上解決這個問題。
我還沒有嘗試過任何東西。這超出了我的想像!
P粉2259617492023-12-28 00:08:17
此方法比較粗略,通常您應該使用資料庫自動遞增(數字)或自動產生唯一 ID,例如 md5(time().'randomsalt'.$username)。
但是如果您必須使用 XXX00000 格式,您將需要以下功能:
一段時間後這會非常慢,而且每個名字最多有 99999 次存在的機會,之後你需要將 BLA 更改為 BL1、BL2 等。