2017-11-23 2 views
3

Ich habe eine Tabelle customers mit den Feldern id, name und so weiter.Laravel definieren Beziehung über mehrere Tabellen

Eine Tabelle doctors mit den Feldern id, name.

Dann gibt es eine Tabelle subject_areas, die alle Themenbereiche hat, die ein Arzt haben kann. Die Felder sind id, text.

So kann jeder Arzt mehrere Themenbereiche haben. Es gibt eine Pivot-Tabelle doctor_subject, die eine angleToMany-Beziehung ist.

Hier ist mein Problem: Ein Kunde kann mehrere Ärzte haben, aber nur für einen bestimmten Themenbereich. Ich habe es mit einer neuen Tabelle customer_doctor mit den Feldern id, customer_id und doctor_subject_id versucht. Aber wie kann ich das in Eloquent abbilden?

+0

können sich Ärzte und Kunden in Ihrer App anmelden? – lewis4u

+0

Ja, ich habe bereits einen "Benutzertisch"/ein Modell, von dem Kunden und Ärzte profitieren. – nutzt

+0

ok, also speichern Sie alle von ihnen in Benutzer Tabelle? Ärzte und Kunden? – lewis4u

Antwort

2

Problem wurde in Relation zwischen Tabellen. Nach dem Chat Klärung kam dies als Lösung aus:

enter image description here

HTML-Formular in einer Weise geschrieben, dass die Kunden Arzt zuerst wählen, dann auf Auswahl, je mehrere seiner zur Verfügung stehenden Flächen wählen. In diesem Szenario muss der Kunde nicht in direktem Zusammenhang mit Bereichen stehen und sollte nur in Bezug auf Bereiche mit Arzt in Beziehung zu Bereichen stehen. Auch als Randnotiz könnten, falls nötig, tiefere Beziehungen, Modelle für Pivot-Tabellen erstellt und verwendet werden.

+0

Sie könnten doctor_customer_doctor_id und doctor_customer_customer_id von area_doctor_customer entfernen. Es ist bereits durch die Beziehungen verfügbar. Ich bin froh, dass du es herausgefunden hast. –

+1

Wenn ich n: m-Tabelle in das MySQL Workbench-Diagramm einfüge, erstellt es auf diese Weise automatisch ein Schema mit allen zusammengesetzten Schlüsseln. Es tut nicht weh, aber du hast Recht. Vielen Dank. – Tpojka

Verwandte Themen