Datenbankmodell: Entität, die Werte aus zwei verschiedenen Tabellen oder Benutzereingabewerten haben kann

Ich modelliere eine Datenbank, in der ich eine Tabelle namens "Termine" habe (Citas in Spanisch, aber ich würde zum besseren Verständnis die Namen der Tabellen übersetzen), in der der Benutzer einen Termin für den Besuch eines Sanitäter erstellen kann (wobei er die Werte aus der Medizintabelle nimmt) ) oder um eine Einrichtung zu besuchen (Werte aus der Tabelle "establecimeintos" entnehmen), aber ich muss dem Benutzer auch die Möglichkeit geben, Daten direkt hinzuzufügen.

Was kann die beste Annäherung sein, um dies zu erreichen ?, Zu diesem Zeitpunkt denke ich, dass die ID eines Sanitäters oder einer Einrichtung als Fremdschlüssel hinzugefügt wird, aber ich bin mir nicht sicher.

This is my database diagram: enter image description here

1
ru
Können Sie uns weitere Informationen zum Kontext Ihrer Bewerbung geben? Nun scheint es, als würden Sie versuchen, völlig andere Dinge zu speichern, die zufällig einen sehr ähnlichen Namen in einer Tabelle haben.
hinzugefügt der Autor Dee, Quelle

1 Antworten

Wenn ein Benutzer (Usuario) einen Termin (Citas) mit einem bestimmten Arzt (Medico) oder haben kann Wenn Sie ein bestimmtes Establishment (Establecimiento) verwenden, müssen Sie eine optionale 1 zu viele Beziehung zwischen Appointment und Establishment AND und optional 1 zu vielen Beziehungen haben zwischen Termin und Arzt .

Das optionale Beziehungsschiff wird im Diagramm dargestellt, indem der Krähenfuß durch einen | mit O auf der Seite von Establishment und Doctor .

Für die Tabelle Appointment bedeutet dies, dass ein Feld vorhanden ist, das für beide ein Fremdschlüssel ist. Und diese Felder dürfen Null sein. Dies gibt Ihnen volle Flexibilität: Sie können den Termin ohne irgendetwas hinzufügen, Sie können den Arzt oder die Einrichtung oder beides einstellen.

Bei dieser Gelegenheit möchte ich Sie auf zwei weitere Punkte aufmerksam machen (unabhängig von Ihrer Frage):

  • Aus Ihrem Diagramm geht hervor, dass ein Arzt nur einen Benutzer hat (aus diesem Grund wird eine usario_id im Arzt Tabelle). Ich denke, das ist falsch (es sei denn, Ihr System verwaltet eine Klinik für Millionäre, die einen privaten Vollzeit-Privatarzt einstellen können): Sie müssen diese Beziehung in eine Beziehung zwischen vielen und vielen ändern.
  • Ich frage mich, ob diese direkte Beziehung notwendig ist, da der Termin de facto eine indirekte Beziehung zwischen vielen Ärzten und Patienten sein wird.
0
hinzugefügt