Heim > Fragen und Antworten > Hauptteil
Ich erstelle eine Webanwendung für ein Genealogieprojekt. Ich möchte, dass jede zur Datenbank hinzugefügte Person eine eindeutige ID hat, die auf den ersten drei Zeichen ihres Nachnamens basiert (nennen wir sie der Erklärung halber „Nachnamenszeichenfolge“), mit einer automatischen Inkrementierung (von 00001 steht für jede Person). eindeutiger „Nachname-String“).
Beispiel – Der Nachname einer Person ist „Smith“. Die Nachnamenszeichenfolge ist SMI, und da es sich um die erste Nachnamenszeichenfolge „SMI“ handelt, lautet die vollständige Referenz SMI00001. Der Nachname der anderen Person ist Schwarz, daher lautet ihre Nachnamenszeichenfolge BLA. Da sie die erste Person mit der Nachnamenszeichenfolge BLA ist, lautet ihre Referenz BLA00001. Der Nachname der dritten Person ist ebenfalls Smith – sie ist die zweite Person mit der SMI-Nachnamenszeichenfolge, daher sollte ihre Referenznummer SMI00002 lauten.
Diese eindeutige ID wird in der Personen-URL verwendet, um nach Personen in der Datenbank zu suchen und Beziehungen zwischen Personen herzustellen.
Ich weiß nicht, wie ich dieses Problem logisch lösen soll.
Ich habe noch nichts ausprobiert. Das übersteigt meine Vorstellungskraft!
P粉2259617492023-12-28 00:08:17
此方法比较粗略,通常您应该使用数据库自动递增(数字)或自动生成唯一 ID,例如 md5(time().'randomsalt'.$username)。
但是如果您必须使用 XXX00000 格式,您将需要以下功能:
一段时间后这会非常慢,而且每个名字最多有 99999 次存在的机会,之后你需要将 BLA 更改为 BL1、BL2 等。