PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

UUID ou SEQUENCE pour la clé primaire ?

Une sequence dans PostgreSQL fait exactement la même chose que AUTOINCREMENT dans MySQL. Une sequence est plus efficace qu'un uuid car c'est 8 octets au lieu de 16 pour le uuid . Vous pouvez utiliser un uuid comme clé primaire, comme la plupart des autres types de données.

Cependant, je ne vois pas comment cela se rapporte au masquage d'un ID utilisateur. Si vous souhaitez masquer l'ID d'un certain utilisateur aux autres utilisateurs, vous devez gérer avec soin les privilèges de la table et/ou hacher l'ID en utilisant - par exemple - md5() .

Si vous souhaitez protéger une table contenant des données utilisateur contre les pirates espions qui essaient de deviner d'autres identifiants, alors le uuid type est un excellent choix. Paquet uuid-ossp a plusieurs saveurs. La version 4 est alors le meilleur choix car elle possède 122 bits aléatoires (les 6 autres sont utilisés pour l'identification de la version). Vous pouvez créer une clé primaire comme celle-ci :

id uuid PRIMARY KEY DEFAULT uuid_generate_v4()

et vous n'aurez plus jamais à vous en soucier.

PostgreSQL 13+

Vous pouvez maintenant utiliser la fonction intégrée gen_random_uuid() pour obtenir un UUID aléatoire version 4.