Dee*_*eyi 2 python django django-models
刚刚跳入django 1.8进行快速项目,我发现UUIDField模型中有一个.
UUIDField
https://docs.djangoproject.com/en/1.8/ref/models/fields/#uuidfield
我将此用于外部id字段,每个模型都必须公开该对象.将default参数处理的独特性或者我必须把它写在救?我的意思是我知道几乎没有值碰撞的机会,只是知道它是如何在内部完成的
default
Rah*_*pta 6
UUID模块每次如何保证唯一值?
RFC 4122(UUID模块规范)指定了三种生成UUID的算法:
在所有情况下,种子值与系统时钟和时钟序列值组合(以便在时钟向后设置时保持唯一性).因此,根据上述机制生成的UUID将是已经或将要分配的所有其他UUID的唯一.
摘自RFC 4122 摘要:
UUID长128位,可以保证跨空间和时间的唯一性.
注意:由于UUIDS的这种唯一性属性,Django没有在内部检查(如@FlipperPA所述)来检查是否已经存在另一个具有相同对象的对象uuid.
uuid
Kev*_*nry 6
Django 不强制 UUID 的唯一性。这是因为 UUID 的主要用例是提供一个可以预期是唯一的标识符,而无需与集中机构(例如数据库,就是这样unique=True做的)进行检查。
unique=True
(请注意,UUID 不能保证是唯一的,发生冲突的可能性很小。)
如果您愿意的话,您当然可以使用数据库在 UUID 之上强制执行唯一性(通过unique=True在您的字段上进行设置),但我想说这是一种不寻常且难以证明合理的配置。
归档时间:
10 年,3 月 前
查看次数:
2853 次
最近记录:
7 年,10 月 前