PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

UUID czy SEQUENCE dla klucza podstawowego?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:pomiędzy z datetime

  2. kolejność kolumn w instrukcji SELECT * - gwarantowana?

  3. Co sprawdzić, jeśli wykorzystanie pamięci PostgreSQL jest wysokie?

  4. Jak radzić sobie z ewolucją bazy danych Play Framework 2 w środowisku produkcyjnym

  5. Zoptymalizuj PostgreSQL do szybkiego testowania