PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

UUID или SEQUENCE за първичен ключ?

sequence в PostgreSQL прави точно същото като AUTOINCREMENT в MySQL. sequence е по-ефективен от uuid защото е 8 байта вместо 16 за uuid . Можете да използвате uuid като първичен ключ, точно както повечето други типове данни.

Не виждам обаче как това се отнася до маскирането на потребителски идентификатор. Ако искате да маскирате идентификационния номер на определен потребител от други потребители, трябва внимателно да управлявате привилегиите на таблицата и/или да хеширате идентификатора, като използвате например md5() .

Ако искате да защитите таблица с потребителски данни от подслушване на хакери, които се опитват да отгатнат други идентификатори, тогава uuid тип е отличен избор. Пакет uuid-ossp има няколко вкуса. Версия 4 е най-добрият избор, тъй като има 122 произволни бита (другите 6 се използват за идентифициране на версията). Можете да създадете първичен ключ по следния начин:

id uuid PRIMARY KEY DEFAULT uuid_generate_v4()

и тогава никога повече няма да се налага да се тревожите за това.

PostgreSQL 13+

Вече можете да използвате вградената функция gen_random_uuid() за да получите произволен UUID на версия 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. Postgres и индекси на външни ключове и първични ключове

  2. Не можа да се свърже със сървър на postgres в докер от докеризирано приложение

  3. динамична заявка postgres

  4. PostgreSQL, SELECT от max id

  5. Как работи EXCEPT в PostgreSQL