У меня есть модель с UUIDField
, которая не является первичным ключом. Первичный ключ просто оставлен по умолчанию, большое целочисленное поле.
import uuid
class MyModel(models.Model):
uuid = models.UUIDField(_('uuid'), default=uuid.uuid4, editable=False)
Теперь мой вопрос: должен ли я явно объявить поле уникальным? Я понимаю, что вероятность столкновений очень мала, поэтому, вероятно, документация Django не делает поле уникальным. Кроме того, я должен также индексировать поле в базе данных? Вот так:
import uuid
class MyModel(models.Model):
uuid = models.UUIDField(_('uuid'), default=uuid.uuid4, editable=False, unique=True, db_index=True)
Поле будет в основном использоваться в качестве внешнего идентификатора, где идентификатор обычно не является предпочтительным.