sql >> Databáze >  >> RDS >> PostgreSQL

UUID nebo SEQUENCE pro primární klíč?

sequence v PostgreSQL dělá přesně to samé jako AUTOINCREMENT v MySQL. sequence je efektivnější než uuid protože to je 8 bajtů místo 16 pro uuid . Můžete použít uuid jako primární klíč, stejně jako většina ostatních datových typů.

Nevidím však, jak to souvisí s maskováním ID uživatele. Pokud chcete zamaskovat ID určitého uživatele před ostatními uživateli, měli byste pečlivě spravovat oprávnění tabulky a/nebo hashovat ID pomocí - například - md5() .

Pokud chcete chránit tabulku s uživatelskými daty před slídícími hackery, kteří se snaží uhodnout jiná ID, pak uuid typ je skvělá volba. Balíček uuid-ossp má několik příchutí. Verze 4 je pak nejlepší volbou, protože má 122 náhodných bitů (ostatních 6 se používá k identifikaci verze). Primární klíč můžete vytvořit takto:

id uuid PRIMARY KEY DEFAULT uuid_generate_v4()

a pak už se o to nikdy nebudete muset starat.

PostgreSQL 13+

Nyní můžete použít vestavěnou funkci gen_random_uuid() získat náhodné UUID verze 4.



  1. Získejte tabulku a sloupec vlastnící sekvenci

  2. ORA-01950:žádná oprávnění pro tabulkový prostor 'USERS'

  3. customer.pk_name spojení transakcí.fk_name vs. customer.pk_id [sériové] spojení transakcí.fk_id [integer]

  4. Jak získat záznam s maximální hodnotou v MySQL