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.