Kleine Datenmenge persistent speichern

chriss_2oo4

Erfahrenes Mitglied
Hi,

ich bin gerade dabei eine kleine Anwendung zuschreiben, die mir u. a. den täglichen Kalorienbedarf errechnet. Zusätzlich sollte man die Kalorienzusammensetzung einzelner Nahrungsmittel erfassen können.

z.B.: Haferflocken: 400kcal / 8g Eiweiss, 40g Kohlenhydrate sowie einige Mineral- und Vitalstoffe wie Magnesium, Calcium, Vitamin A-E,...

Am besten wäre, wenn ich nun eine Datei hätte zu der ich alle neuen Einträge hinzufüge.
Wie mach ich das am besten?

Ich hab schon an XML gedacht, nur weiss ich nicht genau, ob ich die Nährstoffe, Mineralstoffe und Vitamine als Attribut oder als Child im Dokument speichern soll?

Mfg Chriss
 
Hi

Wie du das Speicherst, bleibt eigentlich dir überlassen. Bei Attributen kommt es darauf an, wie viele es sind. Ab einer gewissen Anzahl bzw einer gewissen Länge von Namen und/oder Werten wird es halt unübersichtlich, wenn du die Datei in einem Editor öffnest.
Bei ChildTags hast du den Vorteil, dass du die Daten leicht in ein DataSet einlesen kannst. Willst du deine Anwendung später erweitern und ein RDBMS nutzen, hast du so weniger Aufwand.

Wenn du immer bei Xml bleiben willst, ist eigentlich nur entscheidend, wie du die Daten in deiner Anwendung halten willst. Hast du dafür deine eigene Datenstruktur (Klassen), ist es für das (De)Serialisieren egal, ob du Tags oder Attribute nutzt, du musst nur in der Klasse angeben, als was ein Field oder Property serialisiert werden soll
 
Hi,

erstmal Dankeschön für eure Antworten! Werde mir die Datenbank aufjeden Fall anschauen, für dieses Projekt möchte ich allerdings XML verwenden. Erstens, weil ich lernen möchte, besser damit umzugehen und zweitens weil ich dann eine portable XML-Datei habe.

Jetzt hab ich noch ne Frage: Verwende ich besser den XmlTextWriter oder das XmlDocument um meine XML-Datei zu erstellen?

Zweite Frage, ich hab zwar kein Problem eine neue XML-Datei zu erstellen, jedoch weiss ich nicht wie ich diese weiterführen kann (etwa wie apend bei Streams)? -> google hab ich schon benutzt, aber ich weiss nicht genau nach was ich suchen soll, meine Suche hat jeden Falls keine Treffer erzielt die mir weiter helfen konnten.

Lg Chriss
 

Neue Beiträge

Zurück