5

我看到http://www.ietf.org/rfc/rfc4122.txt

RFC 4122 第 4 版的最大长度是多少?换句话说,它是否总是与从文档中获取的示例字符串值相同的最大长度?f81d4fae-7dec-11d0-a765-00a0c91e6bf6

我认为答案在于“UUID 字符串表示的正式定义由以下 ABNF 提供”部分

为了数据库表列(varchar),我想要第二个意见。

谢谢!

4

1 回答 1

9

根据RFC 4122

UUID 的长度为 128 位,可以保证跨时空的唯一性。

但是如果我们想知道字符串表示,我们需要检查 ABNF:

  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"

我们总共有 16 个 hexOctet。我们用 hexOctet 计算 2 个字符加上字符“-”的 4 倍。无论版本如何,我们总共有 16 * 2 + 4 = 36 个字符。

于 2014-12-05T20:27:54.900 回答