2013-02-25 12 views
5

I http://www.ietf.org/rfc/rfc4122.txtMaximale Länge einer rfc 4122 Version 4

siehe Was ist die maximale Länge einer RFC 4122 Version 4? Mit anderen Worten, ist es immer die gleiche maximale Länge wie dieser Beispielstringwert, der aus dem Dokument genommen wird? f81d4fae-7dec-11D0-a765-00a0c91e6bf6

Ich denke, die Antwort in dem Abschnitt liegt, der sagt: „Die formale Definition der UUID String-Darstellung durch die folgende ABNF wird“

ich eine zweite Meinung für das wollte einer Datenbanktabellenspalte (varchar).

Danke!

+0

Ich habe keine Antwort, aber welchen Datenbankserver benutzen Sie? Einige Datenbanken verfügen über Typen zum Speichern von UUIDs. SQL Server hat zum Beispiel den Typ 'uniqueidentifier'. –

+0

gute Frage. Orakel. Ich sehe "Es gibt keine GUID oder Uniqueidentifier-Typ in Oracle" nach http://www.michelrenaud.com/?p=3 – finneycanhelp

+0

[Verwandte Fragen] (http://stackoverflow.com/questions/153815/how-should -i-speichern-a-guid-in-oracle). –

Antwort

4

Nach RFC 4122:

Ein UUID ist 128 Bit lang, und Einzigartigkeit über Raum und Zeit garantieren kann.

Aber wenn wir die String-Darstellung wissen wollen, müssen wir die ABNF überprüfen:

UUID     = time-low "-" time-mid "-" 
          time-high-and-version "-" 
          clock-seq-and-reserved 
          clock-seq-low "-" node 
    time-low    = 4hexOctet 
    time-mid    = 2hexOctet 
    time-high-and-version = 2hexOctet 
    clock-seq-and-reserved = hexOctet 
    clock-seq-low   = hexOctet 
    node     = 6hexOctet 
    hexOctet    = hexDigit hexDigit 
    hexDigit = 
     "0"/"1"/"2"/"3"/"4"/"5"/"6"/"7"/"8"/"9"/
     "a"/"b"/"c"/"d"/"e"/"f"/
     "A"/"B"/"C"/"D"/"E"/"F" 

Wir haben insgesamt 16 hexOctet haben. Wir zählen 2 Zeichen mit HexOctet plus 4 mal das Zeichen ("-"). Wir haben insgesamt 16 * 2 + 4 = 36 Zeichen unabhängig von der Version.