Een sequence
in PostgreSQL doet precies hetzelfde als AUTOINCREMENT
in MySQL. Een sequence
is efficiënter dan een uuid
omdat het 8 bytes is in plaats van 16 voor de uuid
. U kunt een uuid
. gebruiken als primaire sleutel, net als de meeste andere gegevenstypes.
Ik zie echter niet in hoe dit zich verhoudt tot het maskeren van een gebruikers-ID. Als u de ID van een bepaalde gebruiker wilt maskeren voor andere gebruikers, moet u de tabelrechten zorgvuldig beheren en/of de ID hashen met - bijvoorbeeld - md5()
.
Als u een tabel met gebruikersgegevens wilt beschermen tegen snuffelende hackers die andere ID's proberen te raden, dan is de uuid
type is een uitstekende keuze. Pakket uuid-ossp
heeft meerdere smaken. De versie 4 is dan de beste keuze aangezien deze 122 willekeurige bits heeft (de andere 6 worden gebruikt voor identificatie van de versie). U kunt een primaire sleutel als volgt maken:
id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
en dan heb je er nooit meer omkijken naar.
PostgreSQL 13+
U kunt nu de ingebouwde functie gen_random_uuid()
. gebruiken om een willekeurige UUID van versie 4 te krijgen.