Hello,
Hi Tom,
Gut, das gefällt mir. Also bleibt es jetzt so mit der Nomenklatur. Da es sich bisher nur um Funktionen handelt, gibt es auch keinen Konflikt mit den Namensräumen von Variablen.
Gut soweit, jetzt müssen wir uns aber noch über die Standard Variablen unterhalten.
Für fopen() verwenden wir $fp;
Die aktuelle Zeit im UNIX Format ist $time_u (steht für unix);
in deinem Format $time_s (steht für spezial);
Gut ändere ich bei mir ab.
Der Pfad zur Datei wird in $filename definiert;
Den würde ich dann auch $filepath nennen, wenn schon.
$filename ist dann nur der Basename des Files.
Unser Mega Array heißt $_file, in gepacketer Fomr $_file_packed;
Datensätze heißen $_record
Das ist im Prinzip bei den relativ kurzen Funktionen auch noch nicht sooo tragisch, weil die Namensräume ja getrennt sind. Allerdings: früh übt sich und je einheitlicher wir das machen, desto leichter lässt sich das Gesamtkunstwerk später lesen, pflegen und dokumentieren.
Noch eine Philosophiefrage:
Wen ein Datensatz zum Update angemeldet wird, der noch nicht odr nicht mehr in der Datei enthalten war, welchen Meinstamp ['lastupdate'] soll der dann erhalten? Den, den er bereits hatte (aus der anderen Datei, aus der er stammt) oder einen frischen, da er ja eben angefasst wurde...
Das ist eigentlich hauptsächlich dann interessant, wenn er archiviert wird. Es könnte in der Arvhivdatei ja aufgrund eines Fehler schon ein Satz mit der ID drinstehen. Wenn man den nun nochmal aus der aktiven in die Archivdatei überstellt, und er behält beim Neueinfügen Seinen Timestamp, dann würde er, da er ja in beiden Files noch denselben hat, auch keinen fehler verursachen. Er würde eben nur seine eigenen Daten nochmals überschreiben. Wenn er zwischenzeitlich in der aktiven Datei angefasst wurde, würden die beiden Meinstamps nicht mehr übereinstimmen. dann würde er in der Fehlerliste von flat_update auftauchen.
Man müsste dann aber in allen Funktionen gewährleisten, dass während des Transportes von File A nach File B keine Manuipulation an den Daten stattfindet.
Beim flat_insert() würden wir dann den aktullen Timestamp nehmen.
Soll der Timestamp pro Datensatz ermittelt werden oder für die gesamte Liste einheitlich. Bei 1000 Stück dauert das schließlich einen kleinen Moment. Allerdings ist die Datei ja während des gesamten Vorganges logisch gesperrt. Ein multi-flat_insert() oder multi-flat_update() würde auch nicht solange dauern, wie meine Schleife bis 999 mit flat_update(), da ich immer nur einen einzigen Satz eingefügt habe, also die Datei auch 999 Mal geöffnet und geschlossen habe, das Array 999 Mal erstellt und wieder zerstört wurde etc.
(--> Diskussion mit CK über die Bufferung *gg*)
Wenn flat_insert() und flat_select() fertig sind, probieren wir es einfach aus!
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau