sequence
w PostgreSQL robi dokładnie to samo co AUTOINCREMENT
w MySQL. sequence
jest bardziej wydajny niż uuid
ponieważ jest to 8 bajtów zamiast 16 dla uuid
. Możesz użyć uuid
jako klucz podstawowy, tak jak większość innych typów danych.
Nie widzę jednak, jak to się ma do maskowania identyfikatora użytkownika. Jeśli chcesz zamaskować ID określonego użytkownika przed innymi użytkownikami, powinieneś ostrożnie zarządzać uprawnieniami do tabeli i/lub haszować ID za pomocą - na przykład - md5()
.
Jeśli chcesz chronić tabelę z danymi użytkownika przed podsłuchującymi hakerami, którzy próbują odgadnąć inne identyfikatory, wtedy uuid
typ to doskonały wybór. Pakiet uuid-ossp
ma kilka smaków. Wersja 4 jest wtedy najlepszym wyborem, ponieważ ma 122 losowe bity (pozostałe 6 służy do identyfikacji wersji). Możesz utworzyć klucz podstawowy w ten sposób:
id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
a wtedy już nigdy nie będziesz musiał się o to martwić.
PostgreSQL 13+
Możesz teraz użyć wbudowanej funkcji gen_random_uuid()
aby uzyskać losowy UUID wersji 4.