Hallo Zergling,
ich unterscheide bei der Speicherung der Beziehungen zwischen den Qualitäten Assoziation (Objekt A KENNT ObjektB) und Komposition (Objekt A HAT Objekt B) - richtig.
Zitat:
|
Muss ich mir deine Artikel wie Wikipedia-Artikel XY vorstellen, der sich dadurch definiert, dass es den Artikel XY auf deutsch (Content DE) und englisch (Content EN) gibt?
|
Genau. In der Tabelle "cms_Content" speichere ich den eigentlichen Inhalt und ein Eintrag in "cms_Article" ist quasi nur ein mehrsprachiger Artikel mit mehreren Inhalten.
Zitat:
|
Man könnte sich überlegen eher oder zusätzlich die Inhalte (Content) an Rechte zu koppeln, anstatt nur den Artikel. Warum sollte ich einen japanischen Content editieren dürfen, wenn mir offensichtlich die (sprachliche, nicht unbedingt inhaltliche) Kompetenz fehlt. Aber vielleicht treibt man es da zu weit.
|
Das ist sicher eine gute Ergänzung. Die Abfrage wird aber ziemlich wild, da man ja Gruppen- und Benutzerrechte berücksichtigen muss. Aber das ist ein gutes Beispiel um JOINen zu üben
Zitat:
|
Die Bezeichnung Article und Content finde ich dann aber zu ähnlich und nicht unbedingt von sich aus Aussagekräftig. Sprachversion klingt zwar abgedroschen, aber das genau ist es ja eigentlich.
|
Da bin ich auch schon drübergestolpert. Hab mir dann aber gedacht, dass Article die Instanz eines Artikels ist und wenn dieses Objekt geladen wird, dann ist die sprache bekannt und ich mappe die Inhalte über die Beziehung direkt in das Objekt Artikel. Aus diesem Blickwinkel ist die Tabelle "cms_Content" nur eine "Hilfstabelle" der Datenschicht.
Zitat:
Bei der Navigation verstehe ich nicht ganz den Unterschied zwischen Navigation und Navigations-Knoten. Definiert sich eine Navigation nicht durch seine Navigationsknoten-Kombination?
Wie baust du diese Navigation auf, Nested Set würde sich anbieten, benötigt ja aber nur eine Tabelle.
|
Das bedeutet: Eine Webseite kann mehrere Navigationen haben und eine Navigation komponiert mehrere Navigations-Punkte. Stell dir vor eine Webseite hat auf der linken Seite eine Haup-Navigation und horizontal oben eine generische Navigation mit Impressum, Sitemap, ..., dann sind das zwei unterschiedliche Navigationen. Ich möchte diese getrennt behandeln können, da ich dann auch die Ausgabe sauber trennen kann.
Zitat:
|
Was soll das CMS denn hauptsächlich verwalten - News? Oder frei und beliebig?
|
Frei & beliebig. Was ich noch gemacht habe ist ein ContentTagParser. Schreibst du z.B. in den Text ein "[TerminDB]", so wird dir die Termin-Datenbank beim generieren der Ausgabe dort reingesetzt. Diese wiederum ist ein eigenes Modul. Genauso kann man dort "[news date="123456" title="hallo"]my news content[/news]" reinschreiben und der entsprechende parser generiert dier daraus eine HTML-Darstellung (bbCodeParser). Man hat also die Freiheit alles einzubinden, was man sich denken kann. Die jeweiligen Module können natürlich wieder eigene Tabellen mitbringen.
Andere/weitere Meinungen?