Составной / составной первичный / уникальный ключ с Django - PullRequest
18 голосов
/ 16 февраля 2010

Как вы можете создавать модели (и, следовательно, таблицы) с составным (составным) первичным / уникальным ключом, используя Django?

Ответы [ 3 ]

32 голосов
/ 16 февраля 2010

Django не поддерживает составные первичные ключи. Вы можете создать один составной уникальный ключ с помощью Meta.unique_together.

5 голосов
/ 25 ноября 2016

, если вы хотите, чтобы только уникальные смешанные поля использовались вместе, используйте следующий код:

class MyTable(models.Model):
    class Meta:
        unique_together = (('key1', 'key2'),)

    key1 = models.IntegerField()
    key2 = models.IntegerField()

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

class MyTable(models.Model):
    class Meta:
        unique_together = (('key1', 'key2'),)

    key1 = models.IntegerField(primary_key=True)
    key2 = models.IntegerField()
2 голосов
/ 13 апреля 2012

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

Например, у вас есть база данных, содержащая вашу коллекцию CD. Одна из сущностей называется дорожками, которая содержит подробности дорожек на компакт-диске. У этого есть составной ключ названия компакт-диска, номера дорожки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...