...
v5.3
...
...
...
Schemata ermöglichen es eigene Datenbanktabellen zu schaffen.
...
Die Schemata ermöglichen es eigene Datenbanktabellen in PIM zu erstellen. Hierfür werden die folgenden Konfigurationstabellen zur Definition genutzt:
Schemata
Tabellen
Tabellengruppen
Alle Tabellen stehen über den Administrationsbereich zur Verfügung. Die Schemata sind eine Gruppierung von Tabellen welche optional in Tabellengruppen organisiert werden können.
Info |
---|
Schemata und Tabellenstrukturen definieren ausschließlich Tabellen und deren Beziehung zueinander. Mit der Modelling Datenmodellierung können Formularmasken mit Feldern und Feldgruppen für diese Tabellen erstellt werden. |
Datenpflege
Folgende Datenpflege ist für die Erstellung eines funktionsfähigen Schemas erforderlich.
Datenbank-Schemata
Ein Datenbank-Schema-Datensatz stellt ein Schema als ganzes dar. Einem Datenbank-Schema-Datensatz müssen alle diesem Schema zugehörigen Tabellenstrukturen als Kind verknüpft werden.
...
Ein eindeutiger Identifikator für dieses Schema. Dieser Identifikator wird auch als Bestandteil der Breadcrumb genutzt und sollte daher möglichst aussagekräftig sein.
Info |
---|
Es sind ausschließlich Groß- und Kleinbuchstaben von A bis Z und Zahlen von 0 bis 9 gestattet. Nach den brandbox-Code-Konventionen sollte ein Identifikator mit einem Kleinbuchstaben anfangen. |
...
Dashboard-Kacheln
Die Kacheln repräsentieren die Kacheln die in brandbox angezeigt werden. In den Kacheln können Tabellen gruppiert und sortiert werden.
Tabellenstrukturen
Ein Tabellenstruktur-Datensatz stellt eine einzelne Datenbanktabelle dar. Wird einem Tabellenstruktur-Datensatz eine Tabellenstruktur als Kind verknüpft so wird eine Beziehung zwischen den beiden Tabellen aufgebaut welche es ermöglicht Datensätze beider Tabellen miteinander zu verknüpfen.
...
Der eindeutige Identifikator dieser Tabellenstruktur. Dieser Identifikator wird unter anderem genutzt um die Datenbanktabelle dieser Struktur programmatisch anzusprechen.
Info |
---|
Es sind ausschließlich Groß- und Kleinbuchstaben von A bis Z und Zahlen von 0 bis 9 gestattet. Nach den brandbox-Code-Konventionen sollte ein Identifikator mit einem Kleinbuchstaben anfangen. |
...
Der Name dieser Tabellenstruktur und gleichzeitig der Anzeigename der späteren Datenbanktabelle.
Info |
---|
Der Name einer Tabellenstruktur kann in alle verfügbaren Systemsprachen übersetzt werden. |
...
Auswahl aller zur Verfügung stehenden Formularmasken aus der Modelling. Die gewählte Formularmaske bestimmt die Felder und Feldgruppen dieser Tabellenstruktur bzw. Datenbanktabelle.
Info |
---|
Sollte die gewählte Formularmaske ausschließlich für eine Tabellenstruktur genutzt werden, so kann das Feld "Tabellen" im Formularmasken-Datensatz ausgelassen werden. |
...
Auswahl eines Feldes aus der Datenmodellierung vom Typ "Dateiauswahl". Diese Information wird unter anderem für die Kachel-Ansicht in brandbox genutzt.
Info |
---|
Die ausgewählte Spalte muss mit der Formularmaske von dieser Tabellenstruktur verknüpft sein. |
...
Datenbankschema aktualisieren
Sollten Anpassungen an den beiden Schemata-Tabellen durch die Datenpflege vorgenommen worden sein, so müssen diese Änderungen aus der Datenpflege übernommen und angewendet werden. Hierzu steht in der Toolbar beider Schemata-Tabellen ein Button zu Verfügung. Über diesen kann der Aktualisierungsvorgang manuell gestartet werden.
Info |
---|
Dieser Aktualisierungsvorgang wird von brandbox auch nach einem Update des Systems durchgeführt. |
Info |
---|
Anpassungen an den verwendeten Formularmasken bei Tabellenstrukturen müssen wie in der Datenmodellierung beschrieben übernommen werden. |
Auswirkungen einer Aktualisierung des Datenbankschemas
Wird der o. g. Aktualisierungsvorgang ausgelöst werden die gepflegten Datenbank-Schemata und deren verknüpften Tabellenstrukturen zum einen Tabellen in die Datenbank überführt und zum anderen werden entsprechende Code-Dateien erzeugt.
Anpassungen an der Datenbank
Jede mit einem Datenbank-Schemata verknüpfte Tabellenstruktur welche keine gewählte Entsprechung besitzt wird als Datenbanktabelle angelegt. Als Name dieser Tabelle wird der vergebene Identifikator in einer umgewandelten Form genutzt. Diese Tabellen beinhalten die in der abstrakten Entity \brandbox\pim\datapool\lib\pimEntityAbstract
beschriebenen Spalten. Zudem werden entsprechende Übersetzungstabellen angelegt, welche sich an das abstrakte Entity \brandbox\pim\datapool\lib\pimTranslationEntityAbstract
halten.
Info |
---|
Tabellen welche in der Datenbank existieren aber keine Entsprechung in Form einer Tabellenstruktur, verknüpft mit einem Datenbank-Schemata-Datensatz, besitzen werden während des Aktualisierungsprozesses aus der Datenbank gelöscht. |
Erzeugung von Code-Dateien
Für jeden Datenbank-Schemata-Datensatz wird ein Ordner unter temp/plugin/scheme/
angelegt. Als Name dieses Ordners wird der Identifikator des Schemas genutzt. Es werden jeweils die für brandbox notwendigen Code-Dateien erzeugt, darunter fallen auch die entsprechenden Entity-Klassen für die Doctrine-Implementation von brandbox. Als namespace
-Basis wird immer brandbox\scheme\[Identifikator des Schemas]
genutzt.
Programmatische Verwendung
Die erzeugten Datenbanktabellen sowie deren Code-Dateien können wie Systemtabellen von brandbox genutzt und im Code angesprochen werden.
...
Datenbankschema aktualisieren
In der Datensatzliste der Schemata kann das gesamte Datenbankschema aktualisiert werden.
Benutzerdefinierte Konfigurationen
Über das JSON-Eingabefeld "Konfiguration" in der Definitionstabelle "Tabellen" kann eine benutzerdefinierte Konfiguration ergänzt werden. Diese kann mithilfe des folgenden Codes abgerufen werden:
Codeblock | ||
---|---|---|
| ||
use \Brandbox\Framework\Component\Widget;
$configuration = $this
->staticController(Widget\Manager::class)
->getRepositoryWidget('[Identifikator der Datenbanktabelle]') // Optional auch direkt über ein Entity per $entity->getWidget() abrufbar.
->getConfiguration()
; |
Echte Tabellenspalten erstellen
Normalerweise erstellt PIM keine Spalten in den generierten Datenbanktabellen sondern nutzt die ODM-Spalte für die Speicherung der Daten. Mit der Checkbox "Tabellenspalten erstellen" in der Konfiguration einer PIM-Tabellenstruktur werden die verknüpften Felder als echte Spalten in der Tabelle erstellt. Hierbei wird standardmäßig die interene Feldkonfiguration als Grundlage für die Spaltendefinition genutzt (Eine Checkbox wird als boolean
gespeichert und eine Textfeld als string
). Mit folgender Feldkonfiguration bei den entsprechenden Spalten kann diese Definition überschrieben werden:
Codeblock | ||
---|---|---|
| ||
{
"doctrine": {
"type": "[Typdefinition von Doctrine (bspw. boolean, string, json, etc.)]",
"length": 255, // Längenangabe als Ganzzahl
"encrypted": true // Optionale Verschlüsselung der Spalte
}
} |
Zugriff auf Datenbanktabellen
Der Identifikator der erstellten Datenbanktabellen setzt sich immer aus dem Identifikator des enthaltenen Schemata sowie dem Identifikator der Tabellenstruktur zusammen. Der nachfolgende Code kann zum Abrufen eines Identifikators genutzt werden.
Codeblock | ||
---|---|---|
| ||
use Brandbox\PimCore\Pim\Facade;
$scheme = '[Schema-Identifikator]';
$repository = '[Tabellenstruktur-Identifikator]';
$identifier = $this
->staticController(Facade\Manager::class)
->getRepositoryIdentifier($scheme, $repository)
; |
Versionshinweise
Info |
---|
brandbox 11.0 (pim-core 5.0)
|
Info |
---|
brandbox 8.0 (pim-core 2.0)
|