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?
emi schrieb: > Was spräche dagegen? wie willst du Einträge löschen? Was ist wenn 2 Einträge gleichzeitig hinzugefügt werden? Wie willst du schnell suchen?
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.
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.
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.
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...
Was wäre das wohl für ein Forum? Ein gaaanz einfaches, ohne User! Schon dafür ist eine Datenbank notwendig, um die Usernamen und ggf. Anmeldedaten zu speichern.
emi schrieb: > ok, also doch datenbank... danke. Wenn deine Anforderungen wirklich sehr gering / deine Daten sehr einfach strukturiert sind, ist eine Dokumentenbasierte Datenbank, wie z.B. Mongodb vielleicht das richtige für dich. Da kannst du unstrukturiertes JSON reinspeichern und danach suchen, brauchst dir also keine Gedanken um Schemas und so zu machen.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.