166 votes

Longueur maximale des caractères de l'UUID

Nous utilisons l'UUID comme clé primaire pour notre base de données Oracle, et nous essayons de déterminer une longueur maximale de caractères appropriée pour le VARCHAR. Apparemment, cette longueur est de 36 caractères, mais nous avons remarqué que les UUID générés sont plus longs que cela - jusqu'à 60 caractères. Quelqu'un connaît-il une longueur maximale de caractères appropriée pour l'UUID ?

228voto

broofa Points 21663

Section 3 du RFC4122 fournit la définition formelle des représentations des chaînes UUID. Elle comporte 36 caractères (32 chiffres hexagonaux + 4 tirets).

Il semble que vous deviez déterminer d'où proviennent les identifiants invalides de 60 caractères et décider 1) si vous voulez les accepter et 2) quelle pourrait être la longueur maximale de ces identifiants en fonction de l'API utilisée pour les générer.

87voto

apotek Points 803

C'est d'ailleurs le type de champ idéal à définir comme CHAR 36, et non VARCHAR 36, puisque chaque valeur aura exactement la même longueur. Et vous utiliserez moins d'espace de stockage, puisque vous n'avez pas besoin de stocker la longueur des données pour chaque valeur, seulement la valeur.

24voto

StephenS Points 488

La plupart des bases de données ont aujourd'hui un type d'UUID natif pour faciliter le travail avec elles. Si la vôtre n'en dispose pas, il s'agit simplement de nombres de 128 bits, vous pouvez donc utiliser BINARY(16), et si vous avez fréquemment besoin du format texte, par exemple pour le dépannage, ajoutez une colonne calculée pour le générer automatiquement à partir de la colonne binaire. Il n'y a aucune raison valable de stocker la forme texte (beaucoup plus grande).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X