Оптимизация unique_together в Django Models
У меня есть модель, содержащая FK и CharField, и эта пара должна быть уникальной:
class Map(models.Model):
uuid = models.UUIDField(unique=True, default=uuid4, editable=False, db_index=True)
user = models.ForeignKey(User, related_name="uploaded_map", on_delete=models.CASCADE)
workspace = models.ForeignKey(Workspace, on_delete=models.CASCADE)
c_layer = models.CharField(max_length=40, blank=False)
class Meta:
unique_together = ["workspace", "c_layer"]
В проекте используется PostgreSQL, и я немного беспокоюсь, что это ограничение создаст тяжелые индексы из-за ограничения в 40 символов для c_layer, но я не уверен, что это действительно то, что повлияет на производительность.
Можно ли индексировать sha1-хэш-версию этого поля, чтобы уменьшить нагрузку на БД?