Eine sequence
in PostgreSQL macht genau dasselbe wie AUTOINCREMENT
bei MySQL. Eine sequence
ist effizienter als eine uuid
weil es 8 Bytes statt 16 für die uuid
sind . Sie können eine uuid
verwenden als Primärschlüssel, genau wie die meisten anderen Datentypen.
Ich sehe jedoch nicht, wie dies mit der Maskierung einer Benutzer-ID zusammenhängt. Wenn Sie die ID eines bestimmten Benutzers vor anderen Benutzern maskieren möchten, sollten Sie die Tabellenberechtigungen sorgfältig verwalten und/oder die ID hashen, indem Sie beispielsweise md5()
verwenden .
Wenn Sie eine Tabelle mit Benutzerdaten vor schnüffelnden Hackern schützen möchten, die versuchen, andere IDs zu erraten, dann ist die uuid
Art ist eine ausgezeichnete Wahl. Paket uuid-ossp
hat mehrere Geschmacksrichtungen. Die Version 4 ist dann die beste Wahl, da sie 122 zufällige Bits hat (die anderen 6 werden zur Identifizierung der Version verwendet). Sie können einen Primärschlüssel wie folgt erstellen:
id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
und dann müssen Sie sich nie mehr darum kümmern.
PostgreSQL 13+
Sie können jetzt die eingebaute Funktion gen_random_uuid()
verwenden um eine zufällige UUID der Version 4 zu erhalten.