12 Stimmen

CMS: Benutzerdefinierte Seiten als Dateien oder in der MySQL-Datenbank speichern?

Ich erstelle ein benutzerdefiniertes CMS in PHP (von Grund auf neu geschrieben) und möchte wissen, ob ich vom Benutzer erstellte Seiten als Dateien oder in einer MySQL-Datenbank speichern soll.

Der Inhalt besteht ausschließlich aus HTML-Code, zumindest im Moment.

Ich kann nicht entscheiden, welche zu tun, wie das Schreiben von Dateien mit php scheint wie ein Sicherheitsrisiko, und Abrufen von Dateiinhalten aus MySQL auf jeder Seite laden fühlt sich falsch (und könnte ein Performance-Problem?).

Ich habe auch benutzerdefinierte Seiten, die ich für einen Blog usw. programmiert habe. Diese enthalten PHP-Code, müssen aber nicht vom Benutzer geändert werden. Derzeit plane ich, diese als PHP-Dateien zu speichern, da es einfacher ist, sie hochzuladen und so zu bearbeiten, aber sie könnten auch in MySQL gespeichert werden.

Ich wäre Ihnen sehr dankbar, wenn Sie mir sagen könnten, was das Richtige ist, oder zumindest, was Sie tun würden.

1 Stimmen

MySQL ist sehr schnell. CMS speichern jedoch in der Regel nicht ganze Seiten in der Datenbank. Sie speichern die Seite Inhalt Das bedeutet, dass Dinge wie Vorlagen und CSS weiterhin als Dateien gespeichert werden. PHP fügt die verschiedenen Teile zusammen, wenn ein Benutzer eine Seite aufrufen möchte. Sie müssen Hunderttausende oder Millionen von Seitenaufrufen pro Tag über MySQL abwickeln, bevor Sie Leistungsprobleme feststellen (vorausgesetzt, Sie haben ein vernünftiges Design und eine grundlegende Optimierung).

13voto

thomasrutter Punkte 109036

Es wäre besser, den Inhalt in der Datenbank zu speichern. Beachten Sie, dass Sie den Inhalt speichern, nicht die gesamte HTML-Seite (sonst würden Sie nicht wirklich eine Inhalt Managementsystem).

Wenn Sie es mit einfachen Dateien implementieren würden, müssten Sie ein Dateiformat für die Speicherung Ihrer strukturierten Daten erfinden, Sie müssten herausfinden, wie Sie es schnell machen können, sich um Datenintegrität und Race Conditions kümmern und vieles mehr. Mit einer Datenbank haben Sie all dies bereits erledigt, und zwar gut und schnell.

Es ist ganz normal, bei jedem Seitenaufruf eine Datenbankabfrage durchzuführen; in der Tat ist es typisch für Webanwendungen, bei jedem Seitenaufruf mehr als 5 und bis zu 30 Datenbankabfragen durchzuführen, und ich würde vermuten, dass stackoverflow.com wahrscheinlich in diesen Bereich passt.

MySQL ist schnell genug.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X