33

Django を使用して複合 (複合) プライマリ/一意キーを使用してモデル (およびテーブル) を作成するにはどうすればよいですか?

4

3 に答える 3

38

Django は複合主キーをサポートしていません。を使用して、単一の複合一意キーを作成できますMeta.unique_together

于 2010-02-16T05:22:33.237 に答える
15

一意の混合フィールドのみを一緒に使用する場合は、以下のコードを使用します。

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

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

ただし、一緒に一意にする必要があり、列の 1 つをプライマリにするprimary場合は、モデル列の引数を設定します。以下のコードと同様です。

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

    key1 = models.IntegerField(primary_key=True)
    key2 = models.IntegerField()
于 2016-11-25T20:27:34.850 に答える
4

複合キーは、エンティティの出現を一意に識別するための複数の属性で構成されます。これは、キーを構成する 1 つ以上の属性がそれ自体では単純なキーではないという点で、複合キーとは異なります。

たとえば、CD コレクションを保持するデータベースがあるとします。エンティティの 1 つはトラックと呼ばれ、CD 上のトラックの詳細を保持します。これは、CD名、トラック番号の複合キーを持っています。

于 2012-04-13T10:52:49.017 に答える