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 ?
Réponses
Trop de publicités?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.
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).