Qu'est-ce que le Nil UUID ?
Le Nil UUID est une forme spéciale d'UUID où les 128 bits sont tous à zéro. Il se présente sous la forme :
00000000-0000-0000-0000-000000000000
Le Nil UUID sert de valeur réservée dans l'écosystème UUID, définie par la RFC 4122, pour représenter un identifiant « vide » ou « nul » lorsqu'aucun UUID réel n'est approprié.
Fonctionnement du Nil UUID
- C'est une constante prédéfinie dont les 128 bits sont à zéro
- Elle suit le format UUID standard de 32 chiffres hexadécimaux avec tirets au format 8-4-4-4-12
- Il n'y a pas de bits de version ni de variante car tous sont à zéro
- La RFC 4122 l'identifie explicitement comme un cas spécial d'UUID
- On peut l'utiliser comme valeur sentinelle ou marqueur dans les systèmes manipulant des UUID
Avantages et considérations
Avantages | Considérations |
---|---|
|
|
Structure du Nil UUID
Bits | Contenu |
---|---|
0-127 | Tous les zéros (0x00000000000000000000000000000000) |
Contrairement aux UUID standard qui définissent des bits de version et de variante, le Nil UUID a tous ses bits à zéro, y compris ceux de version et de variante.
Nil UUID vs. autres versions
Version | Basé sur | Cas d'utilisation | Unicité |
---|---|---|---|
Nil UUID | Constante (tous zéros) | Valeur spéciale, marqueur | ❌ Non unique |
UUID v1 | Temps + MAC | IDs triables | ✅ Unique global |
UUID v3 | Espace de noms + MD5 | IDs déterministes | ✅ Unique par entrée |
UUID v4 | Aléatoire | IDs random sécurisés | ✅ Statistiquement unique |
UUID v5 | Espace de noms + SHA-1 | IDs déterministes | ✅ Unique par entrée |
UUID v6 | Temps (réordonné) | IDs triables | ✅ Unique global |
UUID v7 | Temps + aléatoire | IDs triables | ✅ Unique global |
Cas d'utilisation courants
- Valeurs par défaut : état initial avant assignation d'un UUID réel
- Marqueurs sentinelles : identifiant spécial dans les systèmes utilisant des UUID
- Détection d'erreur : indique un UUID non initialisé ou manquant
- Espaces réservés en base : lorsque l'UUID réel est en attente ou non applicable
- Objets racine : relations parent-enfant où la racine n'a pas de parent
- Fonctions spéciales : opérations système nécessitant un UUID connu
- Tests : valeur de substitution en environnement de test
Foire aux questions
Le Nil UUID est-il un UUID valide ?
Oui. Le Nil UUID est défini explicitement par la RFC 4122 comme cas spécial. Bien qu'il ne suive pas les règles normales de version/variante, c'est une valeur UUID reconnue.
Puis-je utiliser le Nil UUID comme identifiant ?
Non. Vous ne devez jamais l'utiliser comme identifiant réel. C'est une valeur réservée pour représenter l'absence ou l'état par défaut ; l'utiliser comme ID régulier violerait son but.
Comment vérifier si un UUID est un Nil UUID ?
Comparez-le avec la chaîne « 00000000-0000-0000-0000-000000000000 » ou vérifiez que tous les bits sont à zéro. La plupart des bibliothèques UUID offrent une fonction spécifique pour cela.
Tous les systèmes reconnaissent-ils le Nil UUID comme spécial ?
Pas forcément. Bien que défini par la RFC, certains systèmes peuvent le traiter comme une valeur normale ou le rejeter.
Y a-t-il une différence entre Nil UUID et UUID vide ?
Dans les systèmes bien conçus, les deux termes sont équivalents : l'UUID de tous zéros. Cependant, certaines implémentations peuvent les distinguer.