Antworten auf deine Fragen:
Neues Thema erstellen

Denkanstöße - eigenes CMS

emtrion

Nicht mehr ganz neu hier

Hallo zusammen,

ich zerbreche mir gerade etwas über den Datenbank Aufbau meines eigenen CMS den Kopf und hoffe auf ein paar Denkansätze von Euch.
Mein CMS soll verschiedene Seitentypen haben, wie z.B. "Text mit Bild", "Aktuelles", "Veranstaltungen" etc. Dazu habe ich eine MySQL Tabelle für die einzelnen Seitentypen erstellt, bei der jeder Eintrag für ein einzelnes Layout steht. Nun würde ich eine Tabelle für die einzelnen Seiten erstellen in der dann auch der zu verwendende Seitentyp geschrieben wird. Wenn nun also Seite "abc" aufgerufen wird, dann wird nach dem Seitentyp geschaut und in dieses Layout der Inhalt geladen.

Das Problem beginnt aber mit dem Inhalt, denn jeder Seitentyp hat unterschiedliche Felder für den Inhalt. Mal nur nen LONGTEXT und ein Bild, mal viele kleine Textfelder, mal Datumsfelder etc.

Wie wird sowas nun in der Regel gelöst?
  • Mache ich für jeden Seitentyp nun nochmal eine eigene Tabelle mit den genau dafür vorgesehenen Spalten?
  • Oder gibt es eine ganz große Tabelle mit durch nummerierten Spalten? Dann muss ich aber irgendwo festlegen für was welche Spalte verwendet wird. Die INSERT und EDIT funktionen werden dann auch komplex.
  • Oder gibt es hier ganz andere Ansätze?
Ich würde mich sehr über ein paar Anregungen freuen!

Grüße,
emtrion
 

tr4ze

Mod | Forum

Teammitglied
PSD Beta Team
Sowas wird heutzutage dahingehend gelöst das man Inhalt und Layout trennt, z.B. mit dem MVC-Prinzip.

Hier wirds erklärt -> MVC mit PHP

In einer solchen Struktur ist dann der View für die Ausgabe(deine Layouts) verantwortlich, inkludiert das jeweilige Template und füllt es mit Daten die er vom jeweiligen Model bekommt.
Wie diese Daten beschaffen sind (Text/XML/Json) und woher diese kommen (Dateisystem/Datenbank) liegt in der Verantwortung des Models.

In deinem Fall würde z.B. das Model eine Methode getVeranstaltungen() enthalten in welcher eine Datenbankabfrage ausgeführt und das Ergebnis an den View zurückgeliefert wird.
Auf diese Weise kannst du komplexe Modelle für deine Daten bauen und diese in verschiedenen Views ausgeben lassen.

Templates(Layouts) kommen übrigens ehr selten aus Datenbanken sondern werden direkt aus dem Dateisystem inkludiert.

btw: Das MVC-Prinzip wie es aus CC++ oder Java bekannt ist lässt sich in einem zustandslosen Protokoll wie Http nicht umsetzten. Deswegen sind MVC Lösungen für PHP immer nur Annährungen an das Original-Prinzip. Das ist auch der Grund das es zur Zeit unterschiedliche Ansätze für die Umsetzung gibt. Am besten mal die großen Frameworks und CMS anschauen, die haben das alle etwas anders gelöst.
 

emtrion

Nicht mehr ganz neu hier

Danke tr4ze,

das MVC-Prinzip höre ich zwar gerade zum ersten Mal, aber mein eigener Aufbau entspricht so ziemlich der MVC-Idee. Worum es mir aber eigentlich ging ist die Datenbankstruktur für die Daten selbst. Die Layouts habe ich nicht in der Datenbank.

Schön hätte ich es gefunden, dass jede Seite einen EIntrag in einer Tabelle hat und darin dann alle Daten enthalten sind. Aber Da ein Blog z.B. andere Spalten benötigt als eine Terminliste für Veranstaltungen wird das so nicht funktionieren.
Ich werde also vermutlich für jeden Seitentyp eine extra Tabelle machen müssen in der genau die Spalten enthalten sind, die für diesen Seitentyp benötigt werden.

Ich hatte nur gehofft, dass es vielleicht eine elegantere Möglichkeit gibt, die ich noch nicht kenne! ;)
 

emtrion

Nicht mehr ganz neu hier

Wieso willst du eigentlich ein eigenes CMS entwerfen? Die Auswahl an Systemen ist doch riesig ....
Wieso nicht? :)

Wir haben schon ein komplexes Datenbank-System, welches ich auch für die neue Seite teilweise mitverwenden muss. Da sehe ich einige Probleme das mit einem bestehenden System umzusetzen. Außerdem gibt es mein eigenes CMS auch schon seit einiger Zeit mit einigen Funktionen, die es bei fertigen Systemen nicht gibt. Außerdem will ich auch gerne was dazu lernen um mein eigenes System immer weiter zu verbessern!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.619
Beiträge
1.538.363
Mitglieder
67.540
Neuestes Mitglied
Alex Weidner
Oben