DJANGO СОСТАВНОЙ ПЕРВИЧНЫЙ КЛЮЧ

В Django составной первичный ключ представляет собой комбинацию нескольких полей, которые вместе могут идентифицировать уникальную запись в базе данных. Это необходимо, когда обычный одиночный первичный ключ не в состоянии идентифицировать запись.

Хорошим примером использования составного первичного ключа являются модели, которые содержат данные о связи между двумя таблицами. Например, мы можем иметь модель, которая описывает точки определенной карты и связанные с ним объекты:

class MapPoint(models.Model):
    latitude = models.DecimalField(max_digits=8, decimal_places=5)
    longitude = models.DecimalField(max_digits=8, decimal_places=5)
    name = models.CharField(max_length=64)
    ...

class MapObject(models.Model):
    lat = models.DecimalField(max_digits=8, decimal_places=5)
    long = models.DecimalField(max_digits=8, decimal_places=5)
    name = models.CharField(max_length=64)
    ...
    map_point = models.ForeignKey(MapPoint, on_delete=models.CASCADE)
    order = models.PositiveSmallIntegerField()

    class Meta:
        unique_together = (("map_point", "order"),)
        ...

В приведенной выше модели MapObject мы используем составной первичный ключ "(map_point, order)" для гарантии уникальности объектов на каждом конкретном MapPoint. Это полезно, например, когда мы хотим хранить данные в определенном порядке, например, если мы хотим отобразить точки на карте в определенном порядке.

Использование составного первичного ключа в Django может быть очень мощным и удобным инструментом для управления базой данных, и он должен применяться в тех случаях, когда следует явно описывать связи между сущностями.

Fix Django 3.2 AutoField Primary Key issue (Hindi)

Поисковый алгоритм по файла ICANN (NO-CODE)

61 Создание записей в коде с полями ForeignKey и Manytomany

Как хранить пароли и ключи в коде проектов? Всё о переменных окружения. Пример с Django

Первичный ключ, внешний ключ, суррогатный ключ / Илья Хохлов

Типы ключей в базе данных

11 - Внешние ключи (Foreign Keys) - Уроки PostgreSQL

#3. Маршрутизация, обработка исключений запросов, перенаправления - Django уроки

12. Составной первичный ключ

Django ORM Course - Primary Keys

BLGPG-E66AF11011D7-24-09-19-20

Новые материалы: