Durch die Datenmodellierung lassen sich bestimmte Datentabellen um dynamische Informationen erweitern.
Aufbau des Plugins
Die Datenmodellierung
...
in
...
Aktualisierung des Datenbankschemas
Werden Änderungen an der Datenmodellierung in Form der Datenpflege vorgenommen, so ist eine Aktualisierung des Datenbankschema notwendig. Hierbei werden die Datenbankwidgets aller Tabellen, welche die Datenmodellierung nutzen können, aktualisiert und ein Cache über diese Datenbankwidgets erstellt.
...
brandbox ermöglich die Erweiterung und Veränderung von existierenden Datenbanktabellen sowie die Definition von unabhängigen Eingabefeldstrukturen. Die Konfiguration der Datenmodellierung ist in die drei folgenden Datenbanktabellen verteilt:
- Fomularmasken
- Feldgruppen
- Felder
Jede dieser Datenbanktabellen stellt eine Ebene der Datenmodellierung dar. Felder können optional in Feldgruppen struktutiert werden. Felder und Feldgruppen werden innerhalb einer Formularmaske organisiert. Die Struktur der Datenmodellierung wird im Cache von brandbox vorgehalten um nicht immer aus den Datenbanktabellen erstellt werden zu müssen. Um diesen Cache zu aktualisieren steht in den Toolbars der genannten Tabellen die Schaltfläche " Datenbankschema aktualisieren" zur Verfügung. Hierüber können die o.g. Aktionen ausgelöst werden.
Info |
---|
Neben dem manuellen Aktualisieren des Datenbankschemas, wird dies auch im Rahmen der Installation bzw. eines Updates von brandbox durchgeführt. |
Datenpflege
Die Datenmodellierung wird auf drei Ebenen gepflegt - den Formularmasken, den Feldgruppen und den Feldern. Felder können Kinder von Feldgruppen sein, Felder und Feldgruppen können Kinder von Formularmasken seinwird der bestehende Cache der Datenmodellierung bereinigt und aus den Datenbanktabellen neu aufgebaut.
Formularmasken
Eine Formularmaske repräsentiert eine generelle Erweiterung einer Datentabelle um die mit dieser Formularmaske verknüpften Felder und Feldgruppen.
...
Hier stehen alle Tabellen zur Auswahl, welche durch die Datenmodellierung erweitert werden können. Es können mehrere Tabellen gewählt werden.
Info |
---|
Es gibt Anwendungsfälle aus anderen Plugins in denen hier keine Tabelle ausgewählt werden muss. |
Feldgruppen
Eine Feldgruppe repräsentiert einen Reiter (Tab) innerhalb eines Datenformulars. Unter diesem Reiter werden alle mit dieser Feldgruppe verknüpften Felder angezeigt.
...
Der Identifikator dieser Feldgruppe.
Info |
---|
Identifikatoren von Feldgruppen müssen pro Mandant eindeutig sein und dürfen ausschließlich aus Groß- und Kleinbuchstaben von A bis Z und Zahlen von 0 bis 9 bestehen. Gemäß der brandbox-Code-Konvention sollten Identifkatoren mit einem kleinen Buchstaben beginnen. |
...
Feld
Ein Feld repräsentiert ein tatsächliches Feld, welches in der Datenbank abgespeichert wird.
Info |
---|
Übersetzungsmöglichkeiten beachten. |
...
Der Identifikator dieses Feldes.
Info |
---|
Identifikatoren von Feldern müssen pro Mandant eindeutig sein und dürfen ausschließlich aus Groß- und Kleinbuchstaben von A bis Z und Zahlen von 0 bis 9 bestehen. Gemäß der brandbox-Code-Konvention sollten Identifkatoren mit einem kleinen Buchstaben beginnen. |
...
Der Formulartyp des Feldes. Es stehen die gängigen Formulartypen für brandbox zur Verfügung.
Info |
---|
Felder mit dem Formulartyp "Benutzerdefiniertes Feld" benötigen ggf. eine erweiterte Konfiguration. |
...
Der Standardwert für dieses Feld, sollte es in einem neuen Datensatz verwendet werden.
Info |
---|
Nicht jede Implementation der Datenmodellierung nutzt diesen Standardwert. |
...
Die Konfiguration des gepflegten Feldes.
Info |
---|
Die hier einzutragenden Werte können sich gravierend unterscheiden. Die jeweiligen möglichen Konfigurationen werden von den entsprechenden Plugins behandelt. |
...
Eine Liste an Einschränkungen welche für die Werte des gepflegten Feldes gelten.
Info |
---|
Genutzt werden hier Symfony Validator Constraints. |
...
Verwendung
Durch die Hauptklasse \brandbox\component\modelling\engine
werden drei öffentliche Methoden zur Verfügung gestellt:
...
Liest das entsprechende Feld der Datenmodellierung anhand der eindeutigen numerischen ID aus und gibt ein Objekt zurück welches das Interface \brandbox\component\widget\lib\widget\interfaces\columnInterface
implementiert.
Info |
---|
Die Methode |
...
Info |
---|
Die Datenmodellierung integriert sich in die Datenbankwidgets und wird von anderen Plugins gesondert genutzt. Diese Plugins dokumentieren ihre Integration der Datenmodellierung selbst. |
Events
Interface: \brandbox\component\modelling\lib\event\modellingEventInterface
Adapter: \brandbox\component\modelling\lib\event\adapter\modellingEventAdapter
...
wird genutzt um Feldgruppen und Felder zu organisieren und optional einer Tabelle zuzuordnen. Bei Zuordnung von einer oder mehreren Tabellen wird die in der Formularmaske geplegte Struktur mit den Strukturen der gewählten Tabellen vereint. Neue Feldgruppen und Felder werden den Tabellen hinzugefügt, bestehende Felder und Feldgruppen mit der Struktur aus den Formularmasken überschrieben bzw. erweitert. Felder welche direkt als Kinder einer Formularmaske zugewiesen sind, werden indirekt der Feldgruppe "Allgemein" zugewiesen.