2010-08-02 15 views
8

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

Der Inhalt ist alles HTML-Code, zumindest für jetzt.

Ich kann nicht entscheiden, was zu tun ist, wie das Schreiben von Dateien mit PHP scheint ein Sicherheitsrisiko, und das Abrufen von Datei-Inhalten aus MySQL bei jedem Laden der Seite fühlt sich falsch an (und könnte ein Leistungsproblem sein?).

Ich habe auch benutzerdefinierte Seiten von mir für einen Blog, etc. codiert. 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 sie so zu bearbeiten, aber sie könnten auch in MySQL gespeichert werden.

Ich würde sehr jede Hilfe schätzen, was das Richtige zu tun ist, oder zumindest, was Sie tun würden.

+1

MySQL ist viel schnell. CMS speichern typischerweise nicht ganze Seiten in der Datenbank. Sie speichern Seite * Inhalt *, was bedeutet, dass Dinge wie Vorlagen und CSS immer noch als Dateien gespeichert sind. PHP fügt die verschiedenen Teile zusammen, wenn ein Benutzer eine Seite sehen möchte. Sie müssen jeden Tag Hunderttausende oder Millionen von Aufrufen über MySQL pushen, bevor Sie Leistungsprobleme feststellen (vorausgesetzt, Sie verfügen über anständiges Design und grundlegende Optimierung). – cbednarski

Antwort

11

Sie sollten besser Inhalte in der Datenbank speichern. Beachten Sie, dass Sie Inhalte und nicht die gesamte HTML-Seite speichern (andernfalls erstellen Sie kein Inhalt Verwaltungssystem).

Wenn Sie es mit einfachen Dateien implementiert haben, dann müssten Sie ein Dateiformat zum Speichern Ihrer strukturierten Daten erfinden, Sie müssten herausfinden, wie man es schnell macht, sich um die Datenintegrität und Race Conditions kümmert und Mehr. Mit einer Datenbank hast du das alles schon erledigt und es geht gut und schnell.

Es ist ziemlich normal, eine Datenbankabfrage auf jeder Seitenansicht durchzuführen; in der Tat ist es typisch für Web-Anwendungen, mehr als 5 und bis zu 30 Datenbankabfragen auf jeder Seite zu machen, und ich würde annehmen, dass stackoverflow.com wahrscheinlich in diesen Bereich passen würde.

MySQL ist schnell genug.

Verwandte Themen