Braucht es wirklich eine Datenbank für ein einfaches Forum?

Gast #3666961
Lesenswert?

WIeso kann man nicht einfach ein Textfile anlegen und jedes mal wenn 
jemand was in ein Forum hineinschreibt wird dort  etwas angehängt und 
danach kommt ein Trenner.
Wenn jetzt die Forenseite geladen hat, dann erscheint es mit Hilfe eines 
Php-Skripts welches das Textfile ausliest.

Was spräche dagegen?
Gast #3666970
Lesenswert?

Prinzipiell spricht nichts dagegen, kann in ausgewählten 
Anwendungsfällen sogar perfomanter sein. In manchen Wiki-Systemen wird 
es beispielsweise genau so gehandhabt.

Bei einem Forum schaffst du dir dabei jedoch diverse Probleme, da du 
durchaus komplexere Datenstrukturen hast und auch gleichzeitige Zugriffe 
synchronisieren musst. Wenn du das alles verwalten willst, bist du 
letztendlich wieder bei einem Datenbanksystem. Auch ein Datenbankserver 
schreibt den ganzen Kram letztendlich in Dateien.
Gast #3666983
Lesenswert?

Nachtrag:
Es soll jetzt keine echte Empfehlung sein, aber wenn du unbedingt auf 
einen Datenbankserver verzichten willst, könntest du dir mal dBase 
anschauen. Wird direkt von PHP unterstützt und für kleine Projekte 
könnte man sich evtl. mit den Nachteilen arrangieren.
Gast #3666991
Lesenswert?

Alles in eine Datei führt schnell zu Performanceproblemen, im 
schlimmsten Fall muss jede Operation die Datei einmal abarbeiten. 
Gleichzeitige Zugriffe werden auch ein Problem.

Man könnte beispielsweise eine Datei pro Thread verwenden und - oh 
Wunder - schon benutzt man das Dateisystem als einfache Datenbank.
#3666995
Lesenswert?

emi schrieb:
> Wenn jetzt die Forenseite geladen hat, dann erscheint es mit Hilfe eines
> Php-Skripts welches das Textfile ausliest.
>
> Was spräche dagegen?

Prinzipiell nichts. Solange es ein Mini-Forum ist. Performant ist es 
halt nicht, wenn du bei jedem Seitenaufruf die Datei lesen und parsen 
musst. Also wirst du die Datei wohl im Speicher geeignet 
zwischenspeichern. Damit hast du schon mehr Arbeit als hättest du gleich 
eine Datenbank verwendet. Da gibt es ganz schlanke Systeme, z.B. HSQLDB. 
Die können die Datenbank auch in einer Datei ablegen. Und du hast keine 
Umstände damit, kannst alles geordnet ablegen, suchen, erweitern...
Gast #3667147
Lesenswert?

Naja, prinzipiell geht sowas schon ohne Datenbank.
Ich mein, DokuWiki braucht auch keine - nur indizierte Textdateien und 
gut ist. (Klar, die werden vorgerendert gecached und indiziert, aber das 
sind letztendlich nur Performance-Tweaks.)

Ein Forum ist so doll anders nun auch nicht, im Gegenteil: Es werden 
bestehende Beiträge eher selten geändert, es kommen nur neue hinzu.

Dürfte halt nur schwierig sein, die Performance hoch zu halten.
Ein Ansatz wie "Timestamp als Dateiname pro Post, Unterverzeichnis für 
alle Postings eines Threads" hört sich erstmal nicht schlecht an, aber 
bei ein paar tausend Dateien wird das Verzeichnislisting schnell 
ineffektiv.
Hängt vermutlich vor allem davon ab, wie das schreib/lese Verhältnis ist 
und wie viel RAM/Cache der Server hat.

Machbar dürfte sowas aber schon sein, schließlich hat das Internet mal 
mit Gopher angefangen und da hat sich auch keiner beschwert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren