web-dev-qa-db-fra.com

UUID longueur maximale de caractères

Nous utilisons 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 VARCHAR. Apparemment, il s’agit de 36 caractères, mais nous avons remarqué que les UUID générés sont plus longs, jusqu’à 60 caractères. Est-ce que quelqu'un connaît une longueur de caractères maximale convenable pour UUID?

101
user1753862

Section 3 de la RFC4122 fournit la définition formelle des représentations de chaîne UUID. C'est 36 caractères (32 chiffres hexadécimaux + 4 tirets).

On dirait que vous devez déterminer d'où proviennent les identifiants de 60 caractères non valides et décider 1) si vous souhaitez les accepter et 2) quelle peut être la longueur maximale de ces identifiants en fonction de l'API utilisée pour les générer.

151
broofa

C'est le type de champ idéal à définir en tant que CHAR 36, pas VARCHAR 36, car chaque valeur aura exactement la même longueur. Et vous utiliserez moins d'espace de stockage, car vous n'avez pas besoin de stocker la longueur des données pour chaque valeur, mais uniquement la valeur.

58
apotek

La plupart des bases de données ont un type UUID natif pour faciliter leur travail. Si ce n’est pas votre cas, ce ne sont que des 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 ensuite une colonne calculée pour la générer automatiquement à partir de la colonne binaire. Il n'y a aucune bonne raison de stocker le formulaire (beaucoup plus grand).

6
StephenS