Wat is Nil UUID?
Nil UUID is een speciale vorm van UUID waarbij alle 128 bits op nul zijn gezet. Het wordt weergegeven als:
00000000-0000-0000-0000-000000000000
De Nil UUID dient als een speciale gereserveerde waarde in het UUID-ecosysteem, gedefinieerd in RFC 4122. Het heeft een specifieke semantische betekenis als een "lege" of "null" identifier wanneer een UUID vereist is maar geen daadwerkelijke identifier passend is.
Hoe Nil UUID werkt
- Het is een vooraf gedefinieerde constante met alle 128 bits op nul gezet
- Het volgt technisch gezien het UUID-formaat van 32 hexadecimale cijfers met streepjes in het patroon 8-4-4-4-12
- Het heeft geen versie- of variantbits omdat alle bits nul zijn
- Het wordt expliciet geïdentificeerd in RFC 4122 als een speciale geval UUID
- Het kan worden gebruikt als een sentinelwaarde of tijdelijke aanduiding in systemen die met UUID's werken
Voordelen & Overwegingen
Advantages | Considerations |
---|---|
|
|
Nil UUID-structuur
Bits | Content |
---|---|
0-127 | Alle nullen (0x00000000000000000000000000000000) |
In tegenstelling tot standaard UUID's die specifieke versie- en variantbits hebben, heeft de Nil UUID alle bits op nul gezet, inclusief wat normaal de versie- en variantbits zouden zijn.
Nil UUID versus andere versies
Version | Gebaseerd op | Gebruikssituatie | Uniqueness |
---|---|---|---|
Nil UUID | Constante (alle nullen) | Speciale waarde, tijdelijke aanduiding | ❌ Niet uniek (ontworpen) |
UUID v1 | Tijd + MAC | Tijdgeordende ID's | ✅ Wereldwijd uniek |
UUID v3 | Namespace + MD5 | Deterministische ID's | ✅ Uniek per invoer |
UUID v4 | Random | Veilige willekeurige ID's | ✅ Statistisch uniek |
UUID v5 | Namespace + SHA-1 | Deterministische ID's | ✅ Uniek per invoer |
UUID v6 | Tijd (herordend) | Sorteerbare ID's | ✅ Wereldwijd uniek |
UUID v7 | Tijd + willekeurig | Sorteerbare ID's | ✅ Wereldwijd uniek |
Veelvoorkomende gebruikssituaties
- Standaardwaarden: Initiële staat voordat een echte UUID is toegewezen
- Sentinelwaarden: Speciale markering in systemen die UUID's vereisen
- Foutdetectie: Indicator van niet-geïnitialiseerde of ontbrekende UUID
- Database tijdelijke aanduidingen: Wanneer een echte UUID in afwachting is of niet van toepassing is
- Wortelobjecten: Ouder-kindrelaties waarbij de wortel geen ouder heeft
- Speciale functies: Systeemoperaties die een bekende UUID-waarde nodig hebben
- Testing: Tijdelijke aanduiding in testomgevingen
Veelgestelde vragen
Is de Nil UUID een geldige UUID?
Ja. De Nil UUID is expliciet gedefinieerd in RFC 4122 als een speciale geval UUID. Hoewel het niet de normale versie-/variantregels volgt, is het een erkende UUID-waarde met speciale semantiek.
Kan ik de Nil UUID als identifier gebruiken?
Nee. Je mag de Nil UUID nooit als een daadwerkelijke identifier gebruiken. Het is een speciale gereserveerde waarde bedoeld om de afwezigheid van een UUID of een standaardtoestand weer te geven. Het gebruik ervan als reguliere identifier zou het speciale doel schenden.
Hoe controleer ik of een UUID de Nil UUID is?
Vergelijk eenvoudig de UUID met de string "00000000-0000-0000-0000-000000000000" of controleer of alle bits nul zijn. De meeste UUID-bibliotheken bieden een specifieke functie om de Nil UUID te controleren.
Herkennen alle systemen de Nil UUID als speciaal?
Niet noodzakelijk. Hoewel het in de RFC is gedefinieerd, geven niet alle systemen het speciale behandeling. Sommige databases kunnen het als een geldige waarde toestaan, terwijl anderen het kunnen weigeren of speciale semantiek geven.
Is er een verschil tussen Nil UUID en een lege UUID?
In correct geïmplementeerde systemen zouden "Nil UUID" en "lege UUID" naar hetzelfde concept moeten verwijzen: de alle-nullen UUID. Sommige systemen kunnen echter verschillende representaties hebben voor "leeg" versus "nil", dus het is belangrijk om de specifieke implementatie te controleren.