Ich modelliere eine Datenbankbeziehung in Django, und ich möchte andere Meinungen haben. Die Beziehung ist eine Art Zwei-zu-Viele-Beziehung. Zum Beispiel kann ein Patient zwei Ärzte haben: eine Teilnahme und eine primäre. Ein Arzt hat offensichtlich viele Patienten.Wie würden Sie diese Datenbankbeziehung modellieren?
Die Anwendung muss wissen, welcher ist welcher; Darüber hinaus gibt es Fälle, in denen ein behandelnder Arzt eines Patienten der primäre eines anderen Patienten sein kann. Schließlich sind sowohl die Teilnahme als auch die Grundschulbildung oft dieselben.
Zuerst dachte ich zwei Fremdschlüssel vom Patiententisch in den Arzttisch. Ich denke jedoch, dass Django dies nicht zulässt. Darüber hinaus ist dies eine zweite (2) -zu-viele-Beziehung.
Also, wie kann ich diese Beziehung mit Django modellieren, während der Arzt-Typ, wie es sich auf einen Patienten bezieht, beibehalten wird? Vielleicht muss ich den Arzt-Typ auf der Viele-zu-Viele-Assoziationstabelle speichern?
Danke, Pete
Hmm, das ist interessant. Ich bin froh, dass ich gefragt habe. Django hat vorgeschlagen, related_name irrtümlicherweise zu verwenden. – slypete
Ja - weil in Abwesenheit von "related_name" der Arzt eine umgekehrte Beziehung "patient_set" erhalten würde. Dies führt jedoch zu einem Fehler, da beide Felder versuchen würden, eine umgekehrte Relation "patient_set" zu erstellen. Wenn Sie einen Fremdschlüssel für dasselbe Modell haben, müssen Sie "related_name" angeben, um dieses Problem zu vermeiden. – mipadi
Dies führt zu Duplikaten beim Abrufen der Patientenliste eines Arztes. Die Anwendung muss die Union übernehmen. – slypete