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

UUID o SEQUENCE per la chiave primaria?

Una sequence in PostgreSQL fa esattamente lo stesso di AUTOINCREMENT in MySQL. Una sequence è più efficiente di un uuid perché è 8 byte invece di 16 per uuid . Puoi usare un uuid come chiave primaria, proprio come la maggior parte degli altri tipi di dati.

Tuttavia, non vedo come ciò si riferisca al mascheramento di un ID utente. Se si desidera mascherare l'ID di un determinato utente da altri utenti, è necessario gestire con attenzione i privilegi della tabella e/o eseguire l'hashing dell'ID utilizzando, ad esempio, md5() .

Se vuoi proteggere una tabella con i dati dell'utente da hacker ficcanaso che stanno cercando di indovinare altri ID, allora uuid il tipo è una scelta eccellente. Pacchetto uuid-ossp ha diversi gusti. La versione 4 è quindi la scelta migliore in quanto ha 122 bit casuali (gli altri 6 sono usati per identificare la versione). Puoi creare una chiave primaria come questa:

id uuid PRIMARY KEY DEFAULT uuid_generate_v4()

e poi non dovrai più preoccupartene.

PostgreSQL 13+

Ora puoi usare la funzione integrata gen_random_uuid() per ottenere un UUID casuale della versione 4.