sql >> Database teknologi >  >> RDS >> PostgreSQL

UUID eller SEQUENCE for primærnøgle?

En sequence i PostgreSQL gør nøjagtig det samme som AUTOINCREMENT i MySQL. En sequence er mere effektiv end en uuid fordi det er 8 bytes i stedet for 16 for uuid . Du kan bruge en uuid som en primær nøgle, ligesom de fleste andre datatyper.

Jeg kan dog ikke se, hvordan dette relaterer sig til maskering af et bruger-id. Hvis du vil maskere en bestemt brugers ID fra andre brugere, bør du omhyggeligt administrere tabelprivilegierne og/eller hash ID'et ved at bruge - for eksempel - md5() .

Hvis du vil beskytte en tabel med brugerdata mod snigende hackere, der forsøger at gætte andre id'er, skal uuid type er et glimrende valg. Pakke uuid-ossp har flere smagsvarianter. Version 4 er så det bedste valg, da den har 122 tilfældige bits (de øvrige 6 bruges til identifikation af versionen). Du kan oprette en primær nøgle som denne:

id uuid PRIMARY KEY DEFAULT uuid_generate_v4()

og så behøver du aldrig bekymre dig om det længere.

PostgreSQL 13+

Du kan nu bruge den indbyggede funktion gen_random_uuid() for at få en version 4 tilfældig UUID.



  1. Arbejde med Structured Query Language (SQL) ved hjælp af Microsoft Access 2010, 2013, 2016 og 2019

  2. SQLite installation

  3. Hvorfor har en oracle plsql varchar2-variabel brug for en størrelse, men en parameter ikke?

  4. Hvad betyder exec sp_reset_connection i SQL Server Profiler?