suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Erstellen Sie eine eindeutige ID basierend auf dem Wert in der Zeile in MySQL

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粉541796322P粉541796322334 Tage vor345

Antworte allen(1)Ich werde antworten

  • P粉225961749

    P粉2259617492023-12-28 00:08:17

    此方法比较粗略,通常您应该使用数据库自​​动递增(数字)或自动生成唯一 ID,例如 md5(time().'randomsalt'.$username)。

    但是如果您必须使用 XXX00000 格式,您将需要以下功能:

    • 检查数据库中是否有BLA00001
    • 如果是,请检查 BLA00002 等。
    • 如果否,则创建新条目

    一段时间后这会非常慢,而且每个名字最多有 99999 次存在的机会,之后你需要将 BLA 更改为 BL1、BL2 等。

    Antwort
    0
  • StornierenAntwort