我正在使用像这样的django字段:
import uuid
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
典型的ID如下所示:
6abbde08-99b1-42c7-8bd2-3ec92a4b67b9
是否可以缩短ID,使其更像 99b1 ?
答案 0 :(得分:4)
UUID字段的意思是生成的两个uuids极不可能发生碰撞。您无法将99b1
存储在UUID
字段中,因为它不是UUID。
您可以使用最长为4的CharField
作为主键,但是您将负责生成主键,并确保它们不会发生冲突。
答案 1 :(得分:3)
我认为限制UUIDField
的长度并不是一个好主意。 UUIDField
的重点是生成一个唯一的通用标识符,它不会产生与现有标识符具有相同值的另一个UUID
。
如果你想截断长度,你可以这样做,但它可能会导致碰撞,你会得到2个你当然不想要的ids
。
UUID在生成随机数时会考虑多个参数,因此使用UUIDField
时,您无需担心永久生成ids
。
UUID值长度为128位,“可以保证唯一性 空间和时间“。