变体UUID格式

时间:2015-11-10 23:48:12

标签: uuid

RFC 4122将UUID定义为具有特定格式:    时间戳:8个字节;时钟序列和变量:2个字节;节点:6个字节

在我的应用程序中,我将UUID用于不同类型的实体,比如foo,bar和baz。 IOW,foo类型的每个对象都有一个UUID,每个bar和baz也是如此。这会导致应用程序的输入和输出(日志,CLI)中出现大量UUID。

为了验证输入并使输出更容易处理,我正在考虑将一个半字节(4位)用于实体的类型:foo,bar,baz等。例如,如果那个半字节是&# 39; 5',它表示它是foo对象的UUID。每个UUID在此方案中都是自描述的,可以在输入时进行验证,并且可以在输出中自动添加类别名称前缀,例如" foo:5ace6432 -..."

  1. 以这种方式调整UUID格式是个好主意吗?随机性不是令人担忧的因素,因为我们仍然有118位(总共128位 - 标准用于变体的6位 - 我使用4位)。

  2. 我应该把这个半点放在哪里?如果我把它放在前面,它会覆盖时间戳的一部分。如果我把它放在最后,那就不那么明显了。如果我把它放在中间某个地方,那就更不可见了。覆盖时间戳的一部分是一个问题吗?

  3. 感谢。

1 个答案:

答案 0 :(得分:0)

UUID是128位数字,格式仅用于读取。

尝试解释内部零件是一种不好的做法。 UUID应该是不透明的:一个用于标识事物的单个单元。如果您需要有关实体的其他信息,则需要其他字段。

简而言之:自我描述UUID是个坏主意。