Entschuldigung für die Ungenauigkeit, aber ich bin verwirrt, wie man dieses Datenbankproblem beschreibt. Ein Teil davon ist ein Datenbank-Design-Problem, der andere Teil ist, wie man die Doctrine ORM und Symfony Form Builder-Engine dafür effizient verwendet. Lassen Sie mich versuchen zu erklären:Symfony/Doctrine: Variationen von Entitäten
Meine Datenbank enthält Reparaturen für Handys. Jede Reparatur ist nur für ein Mobiltelefon vorgesehen. Einige Handys haben jedoch unterschiedliche Farben. Während einige Reparaturen (wie Batteriewechsel) für alle Geräte gelten, haben einige (wie Display-Ersatz) unterschiedliche Preise abhängig von der Farbe des Geräts. Es sollte möglich sein, im Menü repair
die Farbe jeder Reparatur anzugeben (wählen Sie eine, viele oder alle).
Mein aktueller DB-Design sieht wie folgt aus:
Aber das erlaubt mir nicht, die Farbe des Gerätes von der Reparatur Entity zugreifen zu können, wie Sie die Farbe eine direkte Beziehung zum Gerät hat, nicht zu reparieren. Also brauche ich eine komplexere Datenbank, die das iPhone immer noch als ein einzelnes Produkt behandelt, aber kann verschiedene Reparaturen zu seinen vielen Varianten sowie Karte Universalreparaturen zu alle Varianten zuordnen.
Sollte ich eine Join-Tabelle (repair_device_color) verwenden, die aus 3 IDs besteht? Scheint nicht hübsch. Und was ist der effizienteste Weg dies mit dem Doctrine ORM abzugleichen? Sollte ich Datenvererbung verwenden?
Hallo bluppisk. Ich schlage vor, dass Sie sich mit dem [Entity-Relationship-Modell] (https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model) für Datenbanken vertraut machen und dann ein richtiges ER-Diagramm zeichnen - damit Sie werde verstehen, was du brauchst. Es gibt ein kostenloses [ERMaster-Plugin] (http://master.sourceforge.net/), das Sie in Eclipse (einer populären IDE) verwenden können, um ein Diagramm wie dieses zu erstellen. Schub mir das wird dir helfen. –
Hallo Alvin, danke. Tatsächlich habe ich einen, und er besteht aus einer zweiten Viele-zu-Viele-Join-Tabelle, in der Gerät + Farbe mit einer Reparatur gepaart ist, aber ich weiß nicht, wie man es in Symfony abbildet. – bluppfisk
Kannst du es irgendwo posten? Benutze vielleicht imgur und füge den Link zu deinem Beitrag hinzu. –