Rolf b: php: file(...) : Format der Datei?

Beitrag lesen

Kunden wollen oft Dinge nicht - die Frage ist, weshalb. Welchen use-case hat dein Bekannter, der es verbietet, diese Erledigt-Info in der Datenbank zu speichern? Oder welche Einwände nennt er - außer "ich will icht"? Denn das ist kein Grund; wenn er einen Experten herbeiholt, dann sollte er auch auf den Rat hören den der Experte gibt (ob der Experte sich dazu 2-nd Level Support geholt hat oder nicht tut da ja nichts zur Sache :) ).

Ich kann mir vorstellen, dass der Anwender die existierenden Tabellen nicht verändern will. Aber das muss man ja auch nicht. Es spricht doch nichts gegen eine zusätzliche Table "ERLEDIGT" mit zwei Spalten. Die ID, als Integer, und das Erledigt-Flag, vielleicht als boolean - vielleicht auch nicht. Wird diese Erledigt-Geschichte nicht mehr gebraucht, droppt man die Table und gut ist. So knapp kann der Speicher des SQL Servers gar nicht sein, als dass das nicht gehen könnte. Und vom Aufwand her kann das nicht schlimmer sein als die Lernkurve, für deren Bezwingung du gerade uns zwecks Räuberleiter herbeirufst.

Sequenzielle Dateien, in welchem Format auch immer, gehören zur Datenhaltung eher nicht auf einen Webserver (es gibt natürlich Ausnahmen). Was ist, wenn mehrere Leute gleichzeitig mit diesem Web arbeiten? Beide lesen die Datei, beide ändern was, der eine schreibt, der andere schreibt - wumms, die Änderungen des "einen" sind futsch. Verwendest Du eine DB-Tabelle, macht jeder der beiden einen Update auf "seine" Row, und keiner stört den anderen.

Eine Absprache, wer gerade was bearbeitet, ist dann aber immer noch nötig. Deswegen finde ich ein einfaches "erledigt" Flag eigentlich zu kurz gesprungen; eigentlich müsste das ein Status sein (offen, in arbeit, erledigt), zusammen mit Spalten für aktueller Bearbeiter und Zugriffsdatum, damit in dem Moment, wo sich jemand ein Objekt zum Bearbeiten vornimmt, es für ihn reserviert werden kann und nicht jemand konkurrierend daran etwas tut - was nachher zu gegenseitigem Überschreiben der Änderungen führen kann. Sowas kann man auch mit Dateien bauen - aber eigentlich schreit es nach einer DB-Table.

Rolf