Freddy: Nachteil: Flatfile

Beitrag lesen

Meines Erachtens hat eine Flatfile ne Menge Nachteile (z.B. oben erwähnte) wenn man nicht genau damit umzugehen weiss.

Ich selbst arbeite nicht mit PHP sondern mit PERL aber bei dieser frage denke ich ist es irrelevant mit was man dies realisiert.
Vor kurzem erst hatte ich für einen bekannten einen Mitgliederbereich (Anmeldung, Verwaltung, Login etc.) programmiert, das alles bassiert auf einer Flatfile. Die Flatfile ist jedoch im gegensatz zu deinem Beispiel besser optimiert.
Deine Flatfile sieht so aus:
-----
1. username 2.passwort 3. vorname 4. email
-----
Meine Flatfile würde so aussehen:
-----
<username>username</username><password>passwort</password> usw.
-----

Ich denke mal um an die Userinformationen ranzukommen splittest du bei 1. / 2. / 3. / 4..
Was wäre wenn jetzt jemand als Username: "TetraPag der 2." nimmt? Merkst was? - Arbeite am Design.

Deine frage ist verständlich, als ich den Mitgliederbereich realisierte stand ich auch vor der frage "Flatfile oder 'echte' Datenbank?", als ich aber zu hören bekam, dass es bestimmt nicht mehr als 100 Mitglieder werden und nur jeweils 6 Userinformationen pro User gespeichert werden sollen hatte ich keine bedenken mehr. Natürlich hab ich dennoch mein ganzes "wissen" angewandt um es bestmöglichst zu machen. Kurz vor Ende kamen dann noch änderungen dazu: jeweils 10 Userinformationen pro User, "eigenes Profil ändern"-System, erweitertes Verwaltungssystem mit Moderatoren-nutzung etc. - da kam ich schon ins grübeln ob ich nicht lieber doch mit ner Datenbank arbeiten möchte, ich habe es aber dann trotzdem so gelassen bzw. das Budget machte nicht so mit ;D.
...
Inzwischen hat die Seite über 600 Mitglieder mit relativ hoher aktivität und seit Anfang an (etwa 1 1/2 Monate) gab es bisher nur ein Problem damit und das war (wie oben angesprochen) ein "Leerfeld"-Fehler (der eigentlich nicht passieren hätte dürfen), sprich: vorname wurde beim anmelden nicht definiert <vorname></vorname> und tatsächlich rutschten die anderen Informationen einen Schritt vor. Ich habe also einfach nur vergessen, dass wenn beim Anmelden der vorname nicht angegeben wird einen platzhalter zu setzen.
Mit Platzhalter meine ich eine bestimmte Zeichenkette die bei undefinierten Inhalten hineingeschrieben werden und diese bei der Ausgabe "unsichtbar" gemacht werden (gibt bessere möglichkeiten!). Du musst jedoch dann bei jedem Schritt (bspw. Profil-änderung) daran denken, dass du Platzhalter benutzt.

Wenn man sich über alles bewusst ist (auf was muss ich achten, was kann passieren und wie kann ich es vermeiden, struktur etc.) ist eine Flatfile durchaus akzeptabel. Für die "einfachkeit" sollte man sich dann aber dann doch lieber für eine Datenbank entscheiden.