Schemata (Pim/Scheme)
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.
Schemata und Tabellenstrukturen definieren ausschließlich Tabellen und deren Beziehung zueinander. Mit der Datenmodellierung können Formularmasken mit Feldern und Feldgruppen für diese Tabellen erstellt 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:
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:
{
"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.
use Brandbox\PimCore\Pim\Facade;
$scheme = '[Schema-Identifikator]';
$repository = '[Tabellenstruktur-Identifikator]';
$identifier = $this
->staticController(Facade\Manager::class)
->getRepositoryIdentifier($scheme, $repository)
;
Versionshinweise
brandbox 11.0 (pim-core 5.0)
Die Datenbankstruktur wird ab sofort direkt über die Schemata erstellt und nicht mehr über die Datenpools
brandbox 8.0 (pim-core 2.0)
Die Konfigurationstabellen (Schemata, Tabellen und Tabellengruppen) sind nach den Mandanten getrennt
Die Identifikatoren dieser Konfigurationen müssen über alle Mandanten hinweg eindeutig sein