Daten serialisieren?
Christian Müller
- php
0 Horst Scheibenhofer0 Tom0 Fabian St.0 Tom0 Fabian St.0 Artikel Locking
Tom0 Fabian St.0 Tom
Hallo!
Ich will für unseren Verein eine Seite machen, wo sich jeder vorstellen kann. Die Verwendung einer Datenbank scheidet aus. Daher bleiben nur Flatfiles übrig. Jetzt habe ich mir mal die Beispiele von Tom auf seinen Seiten angeschaut. Da werden die Daten immer serialisiert, ansatt im Klartext in die Datei geschrieben zu werden.
Kann mir jemand sagen, welche Vorteile dies hat?
grüße,
Christian
Ich will für unseren Verein eine Seite machen, wo sich jeder vorstellen kann. Die Verwendung einer Datenbank scheidet aus. Daher bleiben nur Flatfiles übrig. Jetzt habe ich mir mal die Beispiele von Tom auf seinen Seiten angeschaut. Da werden die Daten immer serialisiert, ansatt im Klartext in die Datei geschrieben zu werden.
Kann mir jemand sagen, welche Vorteile dies hat?
Mit Serialisieren kannst du einfach ein ganzes Objekt abspeichern und wieder einlesen ohne dich näher um das Speichern und wieder Einlesen kümmern zu müssen. Wennst du jetzt ein neues Attribut dem Objekt hinzufügts, wird auch das automatisch mitabgespeichert ohne irgendwas anpassen zu müssen.
Wie das abgespeichert wird, kann dir dann im Normalfall egal sein.
mfg
Horst
Mit Serialisieren kannst du einfach ein ganzes Objekt abspeichern und wieder einlesen ohne dich näher um das Speichern und wieder Einlesen kümmern zu müssen.
man sollte vielleicht ergänzen, daß das mit jedem Datentyp geht - nicht nur mit Objekten. Der Witz ist halt, daß man sich um die Darstellung z.B. eines mehrdimensionalen Arrays nicht zu kümmern braucht und die wiedereingelesenen Variablen gleich wieder den richtigen Datentyp haben.
Gruß, Andreas
Hello,
Ich will für unseren Verein eine Seite machen, wo sich jeder vorstellen kann. Die Verwendung einer Datenbank scheidet aus. Daher bleiben nur Flatfiles übrig. Jetzt habe ich mir mal die Beispiele von Tom auf seinen Seiten angeschaut. Da werden die Daten immer serialisiert, ansatt im Klartext in die Datei geschrieben zu werden.
siehe bei den Anderen...
Und dem "immer" möchte ich widersprechen. Im Beispiel für die Adressverwaltung habe ich eine andere, bezüglich des Speicherbedarfs im RAM sehr viel bessere Lösung gezeigt. Ich habe gezeigt, wie man mit PHP ein Random Access File aufbaut. Dieses kann dann üblicherweise bis zu 4GByte Daten (oder mindestens die Hälfte, wegen Vorzeichen) speichern. Viele Systeme können auch schon wesentlich mehr.
Die Lösung mit den serialisierten Arrays scheitert in der Praxis meistens am gegrenzten Hauptspeicher bei Dateigrößen von typisch maximal 2MByte, also einem 1000stel der Random Access Lösung. Allerdings benötigen die serialisierten Arrays bei intelligentem Aufbau meistens nicht soviel Speicherplatz pro Datensatz, wenn die Felder nicht alle "voll" sind. Die serialisierten Arrays sind auch schneller in der Indexierung, wenn man sie als Spaltenarray und nicht als Zeilenarray aufbaut.
Mehr dazu, wenn es Dich wirklich für eine Anwendung interessiert.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Tom!
Ich klinke mich hier mal rein, weil mich das Thema auch interessiert...
Für kleinere Sachen, also z.B. Gästebuch, etc. würden sich demnach serialisierte Daten eigenen, da eine Dateigröße von mehr als 2MB kaum zu erwarten sind, oder?
Ich versuche nämlich im Moment eine Art Gästebuch zu schreiben, welches ohne Datenbank auskommt. Mir stellt sich dabei eben die Frage, ob ich hierzu eine csv-Datei verwende, oder die Daten vor dem Schreiben serialisiere. Ich habe mich mit dem ganzen Locking-Zeugs auch nicht so tief auseinander gesetzt, wobei mir dies jedoch ziemlich wichtig erscheint.
Sehe ich das also an deinen Beispielsskripte richtig, dass zum Lesen einer Datei LOCK_SH und und zum Schreiben LOCK_EX nötig ist, welche dann wieder durch LOCK_UN aufgehoben werden?
Grüße,
Fabian St.
Hello,
Sehe ich das also an deinen Beispielsskripte richtig, dass zum Lesen einer Datei LOCK_SH und und zum Schreiben LOCK_EX nötig ist, welche dann wieder durch LOCK_UN aufgehoben werden?
Das muss man anders sagen:
zum reinen Lesen reicht LOCK_SH
Man kann es beim Lesen auch unbesorgt vergessen, wenn es nicht wichtig ist, ob richtige
und/oder vollständige Daten angezeigt werden
zum Lesen zum Zwecke der Veränderung und des anschließenden Schreibens muss man
zwingend LOCK_EX nehmen.
zum reinen Schreiben (Beim Hinzufügen) muss auch ein LOCK_EX gesetzt werden
Entsperren braucht man nur, wenn man nach dem Vorgang die Datei noch offen halten
will. Wenn man sie schließt, wird automatisch entsprerrt.
Ich habe dazu einen Artikel geschrieben, der fast fertig ist, aber es fehlen noch ein paar gute grafische Darstellungen und etwa eine Seite Text (von ca. 15). Ich würde den gerne fertig machen, bin aber kein guter Grafiker. Da würde ich also mal Hilfe benötigen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Tom!
Das muss man anders sagen:
[...]
Danke für deine Erläuterungen.
Ich habe dazu einen Artikel geschrieben, der fast fertig ist, aber es fehlen noch ein paar gute grafische Darstellungen und etwa eine Seite Text (von ca. 15). Ich würde den gerne fertig machen, bin aber kein guter Grafiker. Da würde ich also mal Hilfe benötigen.
Hm, um welche Grafiken würde es sich denn handeln? Leider bin ich auch kein sehr guter Grafiker... Wäre es vielleicht trotzdem möglich, dass du mir deinen Artikel (z.B. per Mail) zukommen lässt? Würde mich wirklich brennend interessieren!
Grüße,
Fabian St.
Hello,
es geht um Zeit-Aktions-Diagramme und Datenzustandsdiagramme.
Ich könnte die so mit Buntstiften aufs Blatt malen und dann einscanne. Hätte ja auch was, oder?
Der bisherige Stand des Artikels ist
http://selfhtml.bitworks.de/artikel_locking/artikel/artikel.htm
Ich habe aber noch diverse Seiten Text, der noch ins HTML übertragen werden muss und noch eine Seite vollkommen wirren Text... (Locking bei MySQL). Und dann müssen noch alle Fehler raus, alle Entities kontolliert werden, die ganzen Links zu den Querverweisen gelegt werden, die Einverständniserklärungen von Tischer (oder Data Becker), Brown & Kyle (oder Addison Wesley), usw. eingeholt werden und und und. Ich habe keinen Bock auf Ärger. Die Links sind daher auch noch nicht drin.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi Tom!
es geht um Zeit-Aktions-Diagramme und Datenzustandsdiagramme.
Ich könnte die so mit Buntstiften aufs Blatt malen und dann einscanne. Hätte ja auch was, oder?
Mal was anderes, ja *g*
Der bisherige Stand des Artikels ist
http://selfhtml.bitworks.de/artikel_locking/artikel/artikel.htm
Uch, da weiß ich ja, was ich jetzt in den Ferien alles durchzuarbeiten habe...
[..] Und dann müssen noch alle Fehler raus, alle Entities kontolliert werden, [..]
Da hätte ich gleich ein paar beim Überfliegen des Dokumentes gefunden:
1. "Tablle" - Dateien öffnen und schließen - dritter Absatz
2. 'un in $streamübertragen' - Wichtige Dateifunktionen
3.'gegeeinander' - Dateien gemeinsam benutzen - vorletzter Absatz
4. 'flock() wird [von] antiquierten ..' Lockmodi
5. '.Trat...' - Non Blocking Locks - Sperrfunktion
Grüße,
Fabian St.
Hello,
Da hätte ich gleich ein paar beim Überfliegen des Dokumentes gefunden:
- "Tablle" - Dateien öffnen und schließen - dritter Absatz
- 'un in $streamübertragen' - Wichtige Dateifunktionen
3.'gegeeinander' - Dateien gemeinsam benutzen - vorletzter Absatz- 'flock() wird [von] antiquierten ..' Lockmodi
- '.Trat...' - Non Blocking Locks - Sperrfunktion
Das lohnt so nicht auf Zuruf.
Das muss dann richtig gegengelesen werden; erst fachlich und dann die Rechtschreibung und Grammatik und erst zum Schluss die HTML-Entities.
Dazu müssen erst die fehlenden Kapitel, die schon geschrieben sind, in das Dokument eingebaut werden und dann auch noch die Zeichnungen eingehängt werden. Außerdem wollte ich mich noch besonders um die Druckbarkeit kümmern. CSS ist mein Freund ;-))
Dann fehlen noch Anker, die man auch als Leser sehen kann (Title-Tag der Abschnitte...)
Vielleicht komme ich über Ostern endlich mal dazu. Da wollte ch aber eingentlich eine größere Datenbank bauen, so mit ca. 80 bis 120 Tabellen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom