sql >> Database >  >> RDS >> PostgreSQL

UUID of SEQUENTIE voor primaire sleutel?

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.



  1. SQL, lege cellen afhandelen

  2. Postgres-vensterfunctie en groeperen op uitzondering

  3. Cloud Vendor Deep-Dive:PostgreSQL op AWS Aurora

  4. Excel-spreadsheetkolommen importeren in SQL Server-database