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.