2017-05-15 12 views
0

Ich entwerfe eine Datenbank mit Eloquent/Laravel und ich frage mich, ob das Folgende eine Best Practice ist.Eloquente Vererbung

Für die Autos Tabelle sind einige Spalten spezifisch für den Typ des Autos (Ladebox Abmessungen) und einige sind für alle Autos (Farbe) gemeinsam.

Ist es in Ordnung, wenn ich eine Tabelle mit einigen Spalten leer je nach Typ habe oder ist es besser, verschiedene Tabelle pro Fahrzeugtyp zu haben? Wenn ja, wie kann die Vererbung auf Datenbankebene korrekt implementiert werden? Ich habe versucht, in der Dokumentation zu finden, aber die einzige Referenz ist polymorphe Beziehungen, die etwas anderes ist

+0

Polymorph ist, was Sie wollen. Sie hätten einige tabellenähnliche Attribute mit einer ID und einem Typ. Wenn id 1 wäre und type engine, würden Sie in der Engine-Tabelle nach ID 1 suchen, wenn es 1 wäre und Typ war Übertragung, würden Sie in der Übertragungstabelle für ID 1 suchen. Oh, Moment mal, Sie sagen per Auto Typ? Ich schätze, ich möchte mehr Beispiele sehen, was Sie zu tun versuchen. Würde ein Auto Farben haben und ein anderes würde nicht? – mkaatman

Antwort

1

Eine einfache Pivot-Tabelle sollte Ihnen hier helfen. Dies hilft Ihnen, die allgemeinen Parameter mit dem Auto direkt zu behalten und bestimmte Arten von Autos zu definieren, so dass Sie den Typ mit mehreren Autos wiederverwenden können. Beispielstruktur zum besseren Verständnis

Car 
- id 
- name 
- cost 
- color 

Type 
- id 
- size 
- weight 

Car_type 
- car_id 
- type_id 

Zum Beispiel, wenn Sie Auto mit spec xyz, und Sie können das Auto in vielen Farben haben. Das oben genannte würde Ihnen erlauben, mehrere Autos mit verschiedenen Farben hinzuzufügen und einen einzelnen Autotyp zu verwenden, der die Spezifikation xyz enthält.