Ein datenbankbasiertes CMS speichert Inhalte in einer Datenbank, üblicherweise in Tabellen einer relationalen Datenbank wie MySQL oder PostgreSQL. Die Anwendung selbst besteht aus Programmcode und Templates, die Inhalte liegen getrennt davon.
- Datenbankbasiertes CMS
Ein CMS, das Inhalte in einer Datenbank speichert.
Beispiel: „WordPress, TYPO3 und Drupal sind datenbankbasierte CMS.“Die verbreitete Bauart: Die meisten großen Systeme arbeiten so.
Die übrigen Unterscheidungen: wo die Inhalte liegen Flat-File-CMS; wie Inhalt und Ausgabe zusammenhängen Headless und Decoupled CMS; wer den Betrieb verantwortet SaaS-CMS und Selbst gehostetes CMS.
Was ein datenbankbasiertes CMS leistet
Sie findet und verknüpft. Eine Abfrage über zehntausend Beiträge, gefiltert nach Kategorie, sortiert nach Datum und begrenzt auf zehn Treffer, beantwortet sie über Indizes in Millisekunden. Dasselbe über Dateien zu leisten, verlangt einen eigenen Index.
Dazu kommen Beziehungen. Welche Artikel hängen an einem Autor, welche Produkte an einer Kategorie: Solche Verknüpfungen sind der Kern einer relationalen Datenbank und müssen nicht nachgebaut werden.
Was der Betrieb verlangt
Zwei Dinge statt einem. Ein Backup muss Dateien und Datenbank zum selben Zeitpunkt sichern, sonst passen die Stände nicht zusammen: Ein Bild liegt im Dateisystem, der Verweis darauf in der Datenbank.
Beim Umzug gilt dasselbe. Dateien kopieren genügt nicht, die Datenbank muss exportiert und eingespielt werden, und dabei ist auf Zeichensatz und Version zu achten. Jede dieser Stellen ist beherrschbar, aber keine erledigt sich von selbst.
Wie die Inhalte versioniert werden
Über das System und nicht über die Versionsverwaltung des Quelltextes. Was in der Datenbank liegt, kann nicht sinnvoll in einem Repository geführt werden; die Historie entsteht deshalb innerhalb des CMS, siehe Versionierung von Inhalten.
Das hat eine Folge für die Arbeitsweise: Änderungen an Inhalten lassen sich nicht wie Code von einer Testumgebung auf die Live-Umgebung übertragen. Wer auf einem Testsystem Inhalte pflegt, pflegt sie zweimal oder muss die Datenbank als Ganzes übertragen.