it-swarm.com.de

Was ist der schnellste Weg, um bei der Registrierung eines Benutzers eine eindeutige ID-Nummer zu generieren?

Ich habe einen Kunden, der Benutzer registrieren und ihnen eine eindeutige ID-Nummer geben möchte, wenn sie die Registrierung abschließen. (Art einer Mitgliedsnummer Art der Sache)

Kann ich einfach die WP-Mitgliedstabelle einrichten, um ID-Nummern im oberen 10-stelligen Bereich zu starten?

Benutzererfahrung wäre:

  1. benutzer würde die Website besuchen
  2. benutzer würde sich registrieren
  3. WP würde eine 10-stellige ID-Nummer vergeben
1
Nohl

Die Spalte ID der Tabelle users ist AUTO_INCREMENT, daher können Sie den Basiszähler auf eine hohe Zahl setzen :

ALTER TABLE wp_users AUTO_INCREMENT = 1000000000;

Alle neuen Benutzer haben eine ID, die höher als dieser Wert ist. Das Aufrufen dieser Operation ist sicher, wenn Sie sie versehentlich auf eine niedrige Zahl setzen, geschieht entweder nichts (in einer InnoDB-Tabelle) oder es wird die höchste vorhandene Zahl + 1 (in einer MyISAM-Tabelle) gesetzt.

3
Jan Fabry

Das ID-Feld wird definitiv funktionieren. Wenn Sie eine größere Zahl wünschen, können Sie einfach 10.000 hinzufügen und es wird immer noch einzigartig sein.

Andere Arten, dies zu tun, werden stärker einbezogen. Sie können einen Wert in der Tabelle wp_options speichern und dann abrufen, inkrementieren und speichern. Sie haben jedoch ein kleines Zeitfenster, in dem zwei Personen möglicherweise dieselbe Nummer haben. Überprüfen Sie dies und wiederholen Sie, ob eine vorhanden ist Kollision. Sie können MD5-Hashes (oder SHA1-Hashes) aus ausgewählten Benutzerinformationen generieren. Dadurch erhalten Sie jedoch eine große, unangenehme Zeichenfolge. Dies kann hilfreich sein, wenn Sie eine UUID (Universally Unique ID) über mehrere Systeme hinweg generieren, da die Wahrscheinlichkeit einer Kollision äußerst gering ist.

2
Peter Rowell

Ich denke auch, dass es einfach wäre, sich in den Registrierungsprozess einzuklinken (bevor die Daten an die DB gesendet werden) und einfach die Spalte user_registered aus der Tabelle wp_usermeta mit etwas preg_replace für Leerzeichen zu ändern. Sie wären eindeutig, solange Sie sie nicht in genau derselben Sekunde einreichen. Der Wert wird durch nichts nach dem Registrierungsprozess immer geändert + es würde die Bestellung nach Registrierungszeit ermöglichen, falls Sie dies benötigen.

0
kaiser