2017-10-12 7 views
-1

Ist es ausreichend, UUID zum Generieren von Zufallswerten in einer Spalte mit Unique Constraint zu verwenden?Generieren von zufälligen Werten für Primärschlüssel in MySql

Oder sollten wir anfügen so etwas wie aktuelle Zeitstempel der UUID.

Oder gibt es eine bessere Möglichkeit, zufällige und eindeutige Werte für eine SQL-Spalte zu generieren.

+0

UUID reicht in 99,9999% aller Anwendungsfälle aus. (oder sogar mehr 9s) – luk2302

+1

_ "... für Primärschlüssel ..." _ ist Autoincrement nicht genug? –

+1

Ich möchte, dass sie zufällig sind. Ein Benutzer sollte keine andere Benutzer-ID erraten können. –

Antwort

1

Das Generieren von Zufallszahlen in einer beliebigen Sprache ist eine falsche Bezeichnung. Die Zahlen sind pseudozufällig. Bedeutung nicht ganz 100% zufällig.

Nehmen Sie auch in das Szenario der Generierung einer Zufallszahl im Bereich von 1-5. Du könntest Duplikate erhalten, die dieselbe Nummer erzeugen. Oder wenn Sie mehr als 5 Nummern generieren, haben Sie absolut Duplikate.

Zeitstempel ist tendenziell eine gute UUID, wenn die Felder nur von einem Ort aus aktualisiert werden. Aber dann müssen Sie sich auch Sorgen machen über Dinge wie zum Beispiel sicherzustellen, dass es im richtigen Format ist. Vor allem beim Wechsel zwischen Sprachen/Technologien.

Mit Benutzer-ID, warum nicht automatisch eine Spalte mit den Werten erhöhen? Starten Sie die Spalte irgendwo und erhöhen Sie von dort aus. Ich würde ein paar Zahlen am Anfang der Liste lassen, so dass Sie früh einige leere haben, wenn Sie sie für test/admin benötigen.

Verwandte Themen