Ich bin dran, eine schlichte Forensoftware in PHP zu coden, wo alles in Flat-Files/Textdateien abgespeichert wird, nun hab ich zwei Lösungsansätze und weiss nicht, welcher besser ist. Bei beiden würde ich die Inhalte eines Beitrags (Datum, Benutzername, Kommentar) mittels der serialize()-Funktion in die Dateien schreiben.
a) Für jeden Thread den ein Besucher erstellt, wird eine Textdatei erstellt. Alle Beiträge zu einem Thread werden der Reihe nach in die gleiche Textdatei abgespeichert.
Z.B. wird Thread Nummer 23 als "23.txt" abgespeichert, mit dem Inhalt:
2010-02-07 18:56,Susi,"Hallo zusammen"
2010-02-07 19:02,Peter,"Hallo Susi"
2010-02-07 21:54,Michael,"Hallo Peter"
(zur besseren Ansicht vereinfacht, ohne serialize-Syntax)
Die Thread-Datei wird geladen und alle Beiträge darin abgeklappert um den Thread mit allen Kommentaren von oben nach unten darzustellen.
Vorteil: Jeder Thread ist schön kompakt in der eigenen Datei.
Nachteil: Die Thread-Dateien werden riesig gross und soweit ich weiss können Arrays in PHP nur eine bestimmte Anzahl an Elementen aufnehmen, d.h. bei einem riesigen Thread können die Textzeilen/Beiträge nicht mehr in ein Array eingelesen und weiterverarbeitet werden?
b) Jeder Beitrag kommt in seine eigene Textdatei mit steigender Nummerierung, zusätzlich wird der Dateiname in eine Thread-Datei hinzugefügt.
"1.txt" enthält: 2010-02-07 18:56,Susi,"Hallo zusammen"
"2.txt" enthält: 2010-02-07 19:02,Peter,"Hallo Susi"
"3.txt" enthält: 2010-02-07 19:34,Stefan,"Hier ein neuer Thread"
"4.txt" enthält: 2010-02-07 21:54,Michael,"Hallo Peter"
In einem anderen Ordner ist dann eine Datei "1.txt" mit dem Inhalt: 1,2,4
Und eine "2.txt" mit: 3
"1.txt" und "2.txt" verweisen somit auf alle dazugehörigen Beiträge eines Threads. Wird z.B. Thread Nummer 1 aufgerufen, werden die Beiträge einzeln aus ihren Dateien geladen und auch untereinander auf einer Seite gezeigt werden.
Vorteil: Die einzelnen Dateien werden nicht allzu gross. Die einen Dateien enthalten die Infos eines einzelnen Beitrag, die anderen bloss Zahlen durch Kommas getrennt.
Nachteil: Viel mehr Dateien, die geöffnet und geschlossen werden müssen
Welche Methode ist effektiver und verbraucht weniger Rechenzeit und sonstige Resourcen für PHP?