Arbeiten mit Vererbung – das spart Ihnen Zeit und Nerven!
Haben Sie schon einmal mehrere Entitäten modelliert und festgestellt, dass sie sehr ähnlich sind und viele gemeinsame Attribute aufweisen? Die Verwendung von Vererbung kann Ihnen Zeit sparen und Ihr Projekt wartungsfreundlicher machen! In diesem Beitrag zeige ich Ihnen, was Vererbung ist und wie Sie am effektivsten damit arbeiten.
Grundverständnis
Beginnen wir mit dem unten gezeigten neu erstellten Domänenmodell. Wie Sie sehen, gibt es viele Attribute, die von den Entitäten gemeinsam genutzt werden:

Hier dupliziere ich drei Attribute – Name, Jahr und AnzahlPassagiere. Da diese drei Attribute bei den Entitäten Auto und Boot gleich sind, kann ich sie in eine neue Entität verschieben, die ich Fahrzeug nenne. Ich verwende diese neue Entität als meine „generalisierte“ Entität. Nachdem die Fahrzeugentität erstellt wurde, ist es einfach, die Generalisierung festzulegen, indem ich die Entitäten Auto und Boot öffne und das Fahrzeug als meine Generalisierung auswähle.

Nachdem ich diese Beziehung eingerichtet habe, haben meine Auto- und Bootsentitäten (die „spezialisierten“ Entitäten) Zugriff auf alle Fahrzeugattribute! Dadurch kann ich den Namen meines Autos und Bootes festlegen und an einem Ort verwalten. Es ist jedoch wichtig zu beachten, dass dies nicht bedeutet, dass mein Fahrzeug Zugriff auf die Attribute meines Bootes und Autos hat. Es ist eine Einbahnstraßenbeziehung.
Erstellen spezialisierter Entitäten
Im vorherigen Abschnitt habe ich das Domänenmodell festgelegt, die Fahrzeugentität erstellt und die Vererbungsbeziehung festgelegt. Jetzt muss ich die Erstellung der Entitäten zulassen. Hierfür gibt es zwei gängige Möglichkeiten:
- Erstellen Sie eine Schaltfläche für jede Fahrzeugspezialisierung
- Erstellen Sie eine Schaltfläche für das Fahrzeug, in der ich die Spezialisierung angebe
Die erste Option ist am einfachsten zu implementieren, bietet aber nicht die beste Benutzererfahrung. Hier ist die Benutzeroberfläche für diese Implementierung:

Jede dieser Schaltflächen ruft einen sehr ähnlichen Mikrofluss auf, der das spezialisierte Objekt erstellt – entweder ein Fahrzeug, ein Auto oder ein Boot (beachten Sie, dass ich immer noch Fahrzeuge erstellen kann, die keine Autos oder Boote sind – wie z. B. ein Motorrad).
Diese Methode ist sehr einfach – aber es gibt viele redundante Microflows und Schaltflächen. Stellen Sie sich vor, Sie hätten zehn Spezialisierungen und damit zehn Schaltflächen, die zehn verschiedene Microflows aufrufen. Dies würde eine verwirrende und überladene Seite ergeben.
Hier wird Option zwei interessant!

Mit nur einer Schaltfläche ist diese Seite viel schöner. Diese Schaltfläche erstellt die verallgemeinerte Fahrzeugentität und auf dieser Seite kann ich auswählen, welche Spezialisierung ich erstellen möchte.

Wenn der Fahrzeugtyp ausgewählt ist, klicken Sie auf „Weiter“ und erstellen Sie die spezialisierte Entität.
Von hier aus ist es einfach, die richtige spezialisierte Entität zu erstellen und alle relevanten Details zu kopieren. Achten Sie jedoch darauf, die verallgemeinerte Entität (Fahrzeug) zu löschen, damit Sie keine doppelten oder fehlerhaften Daten erstellen. Nachdem ich nun meine Entitäten erstellt habe, brauche ich eine Möglichkeit, meine Fahrzeuge anzuzeigen und zu verwalten.
Anzeigen und Verwalten
Eine einfache Möglichkeit, eine Liste von Fahrzeugen anzuzeigen und zu verwalten, ist die Verwendung einer Listenansicht. Dies ist insbesondere bei Verwendung der Vererbung nützlich, da Sie für jede Spezialisierung eine andere Vorlage festlegen können.

Durch die Verwendung von Vorlagen kann ich Informationen zu einem Boot oder Auto an einem Ort anzeigen, anstatt eine komplexe Seite erstellen zu müssen. Außerdem können Sie sich auf einige Typen spezialisieren und auf andere nicht. Die „Standardvorlage“ wird von allen Spezialisierungen verwendet, für die keine spezielle Vorlage erstellt wurde.
Nachdem ich diese Elemente nun anzeigen kann, muss ich Schaltflächen zum Bearbeiten und Löschen erstellen. Dabei muss ich auch die Vererbung berücksichtigen und die Wiederverwendbarkeit optimieren. Da ein Boot auch ein Fahrzeug ist, können meine Schaltflächen zum Bearbeiten und Löschen für Boote entweder den Parameter „Boot“ oder „Fahrzeug“ haben. Nur die Verwendung des Parameters „Fahrzeug“ ermöglicht jedoch die Wiederverwendung für alle drei Entitäten. Beim Bearbeiten muss ich eine Vererbungsaufteilung verwenden.
Die grüne Raute ist meine Vererbungsaufteilung. Nachdem ich meine Aufteilung durchgeführt habe, muss ich mein Fahrzeug, falls zutreffend, in die spezialisierte Entität umwandeln. Sobald ich das getan habe, kann ich die Entität als ihre spezialisierte Version verwenden. Zum Löschen muss ich keine Vererbungsaufteilung durchführen. Da ich die Entität lösche, ist die spezialisierte Version nicht relevant – es spielt keine Rolle, ob ich ein Boot oder ein Auto lösche, ich lösche es einfach.
Das ist eine gute Lektion, die schwer zu verstehen sein kann. Sofern ich nicht die spezialisierte Version verwenden muss – also Felder der spezialisierten Entität bearbeiten oder eine Seite anzeigen muss, die dies erfordert – muss ich keinen Vererbungs-Spit durchführen.
Datenraster und Vorlagenraster unterstützen die oben genannte Bearbeitungsfunktion nativ. Ähnlich wie wir die Vorlagen in der Listenansicht einrichten, können wir Seiten für Spezialisierungen mit der standardmäßigen Schaltfläche „Bearbeiten“ auswählen.

Zusätzlich zu den normalen Kompromissen bei Datenrastern, Vorlagenrastern und Listenansichten habe ich jetzt vererbungsspezifische Kompromisse. Die Listenansicht ermöglicht die Anzeige spezifischer Daten, aber ich muss mehr Logik verwalten. Bei den Datenrastern und Vorlagenrastern verwaltet die Plattform einen Teil meiner Logik, aber ich kann nur Informationen anzeigen, die in der generischen Entität gespeichert sind.
Nachdem ich nun erläutert habe, wie man Entitäten mithilfe von Spezialisierungen erstellt und verwaltet, probieren Sie es aus! Denken Sie daran, dass die Verwendung von Vererbung Vor- und Nachteile hat. Wägen Sie diese also vor der Verwendung ab. Ein paar allgemeine Faustregeln:
- Verwenden Sie nie mehr als zwei Vererbungsebenen, da dies zu Leistungsproblemen führen kann.
- Verwenden Sie Vererbung nur an einer logischen Stelle. Ich habe beispielsweise ein Gebäude, ein Auto und eine Person, die alle über die Felder „Name“, „Alter“ und „Adresse“ verfügen. Dies kann jedoch verwirrend sein, wenn sie in eine verallgemeinerte Entität ausgelagert werden.