2010-02-16 10 views

Antwort

31

Django unterstützt keine zusammengesetzten Primärschlüssel. Sie können einen einzelnen zusammengesetzten eindeutigen Schlüssel mit erstellen.

+0

Danke Ignacio! Wie funktioniert das mit einer Viele-zu-Viele-Beziehung? Wird es funktionieren? – Viet

+1

Ich bin * wirklich * neugierig, was Sie glauben, dass die Verbindung zwischen einem zusammengesetzten eindeutigen Schlüssel und einer Viele-zu-viele-Beziehung ... –

+0

Angenommen, wir haben 2 Entitäten: Studenten. Die Schüler können viele Fächer belegen. Eine Join-Tabelle mit zusammengesetztem Primärschlüssel: Tabelle student_subjects: -------------------------------- student_id subject_id Es ist eine grundlegende Technik, um n-zu-n-Beziehungen zu erstellen. – Viet

2

Ein zusammengesetzter Schlüssel besteht aus mehr als einem Attribut zur eindeutigen Identifizierung eines Entitätsvorkommens. Dies unterscheidet sich von einem zusammengesetzten Schlüssel darin, dass eines oder mehrere der Attribute, aus denen der Schlüssel besteht, keine eigenen einfachen Schlüssel sind.

Zum Beispiel haben Sie eine Datenbank mit Ihrer CD-Sammlung. Eine der Entitäten heißt Tracks, die Details der Tracks auf einer CD enthält. Dies hat einen zusammengesetzten Schlüssel aus CD-Name, Titelnummer.

4

wenn Sie einzigartige Mischfelder wollen zusammen verwenden belowcode:

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

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

Aber wenn Sie einzigartige wollen zusammen und eine der Spalten primär sein, setzen Sie primary Argument für Modellspalte, ähnlich unten Code:

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

    key1 = models.IntegerField(primary_key=True) 
    key2 = models.IntegerField() 
Verwandte Themen