Hallo zusammen,
ich habe mich die letzten Tage mit der Datenschicht eines mehrsprachigen CMS beschäftigt - konkret mit dem Tabellen-Layout desselben. Anforderungen waren Mehrsprachigkeit und generische Datenspeicherung, damit Erweiterungen leicht einbindbar sind. Ich bin dabei von der dritten Normalform ausgegangen und habe Objekte und deren Beziehungen in eigene Tabellen gesteckt. Weiterhin werden einfache Rechte-Vergabe auf Artikel und Navigationen über die User- und Group-Tabellen und deren Beziehungstabellen auf die Article und Navigation-Tabelle unterstützt.
Ein Objekt/eine Tabelle erhält hier konzeptionell dadurch einen sprachabhängigen Inhalt, in dem ein Container-Objekt INhalts-Objekte komponiert, die jeweils eine Sprache assoziieren.
Das ER-Diagramm dazu sieht so aus:
Eine leserlichere Version ist unter http://media.adventure-php-framework...ase_Schema.PNG erhältlich. Eim Feasibility-Check der Anwendunsgfälle:
- Laden eines Artikels mit seinem sprachabhängigen Inhalt
- Laden aller Artikel auf die ein Benutzer Rechte hat
- Laden aller Artikel mit Inhalten (sprachabhängig) unter einem Navi-Knoten
- Laden einer Navigation bis zu einem bestimmten Knoten
- Laden eines Navigations-Knotens mit seinem sprachabhängigen Inhalt
- Laden der Navigationen auf die ein Benutzer oder eine Gruppe Rechte hat
- Speichern einzelner Objekte und Beziehungen
ergab, dass das Design theoretisch alle Anforderungen unterstützt und jede Beziehung ist abfragbar.
Durch die Struktur-Tabellen wird das Laden eines Inhalts in der entsprechenden Sprache natürlich etwas komplizierter, aber man möchte schließlich generisch bleiben. Möglich ist hier nämlich noch die Einführung eines Projekts und die Spezifizierung, welcher Artikel zu welchem Projekt gehört. Zusätzlich könnte man auch noch Inhalts-Container einführen, damit Inhalte in einer Ordner-Struktur abgelegt werden können.
Ich würde gerne mal einige Meinungen dazu hören. Kritik jeder Art ist willkommen.
ich habe mich die letzten Tage mit der Datenschicht eines mehrsprachigen CMS beschäftigt - konkret mit dem Tabellen-Layout desselben. Anforderungen waren Mehrsprachigkeit und generische Datenspeicherung, damit Erweiterungen leicht einbindbar sind. Ich bin dabei von der dritten Normalform ausgegangen und habe Objekte und deren Beziehungen in eigene Tabellen gesteckt. Weiterhin werden einfache Rechte-Vergabe auf Artikel und Navigationen über die User- und Group-Tabellen und deren Beziehungstabellen auf die Article und Navigation-Tabelle unterstützt.
Ein Objekt/eine Tabelle erhält hier konzeptionell dadurch einen sprachabhängigen Inhalt, in dem ein Container-Objekt INhalts-Objekte komponiert, die jeweils eine Sprache assoziieren.
Das ER-Diagramm dazu sieht so aus:
Eine leserlichere Version ist unter http://media.adventure-php-framework...ase_Schema.PNG erhältlich. Eim Feasibility-Check der Anwendunsgfälle:
- Laden eines Artikels mit seinem sprachabhängigen Inhalt
- Laden aller Artikel auf die ein Benutzer Rechte hat
- Laden aller Artikel mit Inhalten (sprachabhängig) unter einem Navi-Knoten
- Laden einer Navigation bis zu einem bestimmten Knoten
- Laden eines Navigations-Knotens mit seinem sprachabhängigen Inhalt
- Laden der Navigationen auf die ein Benutzer oder eine Gruppe Rechte hat
- Speichern einzelner Objekte und Beziehungen
ergab, dass das Design theoretisch alle Anforderungen unterstützt und jede Beziehung ist abfragbar.
Durch die Struktur-Tabellen wird das Laden eines Inhalts in der entsprechenden Sprache natürlich etwas komplizierter, aber man möchte schließlich generisch bleiben. Möglich ist hier nämlich noch die Einführung eines Projekts und die Spezifizierung, welcher Artikel zu welchem Projekt gehört. Zusätzlich könnte man auch noch Inhalts-Container einführen, damit Inhalte in einer Ordner-Struktur abgelegt werden können.
Ich würde gerne mal einige Meinungen dazu hören. Kritik jeder Art ist willkommen.
Kommentar