XML oder doch lieber lokale Datenbanken?
XML oder doch lieber lokale Datenbanken?
Hey,
ich habe mal (wieder) ne Frage:
Ab wann lohnt es sich eigentlich wirklich eine lokale Datenbank zu erstellen und wann nicht?
Ich schreibe gerade an einer Trainersoftware in C# und muss Daten über verschiedene Spieler speichern (Kontaktdaten, Leistungen) und natürlich auch Daten über Anwesenheit, Trainingseinheiten, Spiele etc.
Die Daten sind logischerweise irgendwie miteinander verknüpft:
Spieler mit Leistungen, Kontaktdaten, Anwesenheit im Training, Ergebnis von verschiedenen Tests
Da ich von XML noch nicht so die Ahnung habe und mich erstmal eingelesen habe, stellt sich mir die Frage, wie dies besser umzusetzen ist.
Die Frage ist, ab welcher Datenmenge würde man eine Datenbank empfehlen und wann nicht?
Ich würde mich über ein paar Rückantworten freuen
Gruß
Xerion21
ich habe mal (wieder) ne Frage:
Ab wann lohnt es sich eigentlich wirklich eine lokale Datenbank zu erstellen und wann nicht?
Ich schreibe gerade an einer Trainersoftware in C# und muss Daten über verschiedene Spieler speichern (Kontaktdaten, Leistungen) und natürlich auch Daten über Anwesenheit, Trainingseinheiten, Spiele etc.
Die Daten sind logischerweise irgendwie miteinander verknüpft:
Spieler mit Leistungen, Kontaktdaten, Anwesenheit im Training, Ergebnis von verschiedenen Tests
Da ich von XML noch nicht so die Ahnung habe und mich erstmal eingelesen habe, stellt sich mir die Frage, wie dies besser umzusetzen ist.
Die Frage ist, ab welcher Datenmenge würde man eine Datenbank empfehlen und wann nicht?
Ich würde mich über ein paar Rückantworten freuen
Gruß
Xerion21
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: XML oder doch lieber lokale Datenbanken?
Der Vorteil einer Datenbank ist die Möglichkeit über die Abfragen bestimmte Datensätze auszuwählen, die deinem Auswahlkriterien entsprechen. Diese Abfragen können auch sehr kompliziert sein und Daten aus diversen Tabellen anhand der Zusammenhänge auswählen. Das ist die stärke einer Datenbank.
Im Hintergrund muss die Datenbank auch die Daten speichern, dass kann auch in XML passieren.
XML ist nur ein Format, eine Datenbank ist eine Software.
Die Daten selber speichern hat den vorteil, dass du eine größere Kontrolle hast, mitunter eine höhere Geschwindigkeit und eine kleineres Softwarepaket, da du weniger overhead hast.
Der Nachteil ist aber, dass du dich um die Verwaltung selber kümmern musst, was bei einfachen/linearen Daten kein Problem sein sollte.
Im Hintergrund muss die Datenbank auch die Daten speichern, dass kann auch in XML passieren.
XML ist nur ein Format, eine Datenbank ist eine Software.
Die Daten selber speichern hat den vorteil, dass du eine größere Kontrolle hast, mitunter eine höhere Geschwindigkeit und eine kleineres Softwarepaket, da du weniger overhead hast.
Der Nachteil ist aber, dass du dich um die Verwaltung selber kümmern musst, was bei einfachen/linearen Daten kein Problem sein sollte.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: XML oder doch lieber lokale Datenbanken?
Danke für die schnelle Antwort
Aber ich frage mich, wie ich das logisch aufbauen soll, da es viele Verknüpfungen geben wird und ich dafür leider noch kein Konzept habe (bzw. mir noch keins erlesen habe).
Des Weiteren frage ich mich, wo man diese XML-Daten speichern soll, ohne dass durch evtl. löschen von Daten (durch User) das Programm nicht mehr funktioniert...
Aber über LINQ schafft man es doch auch recht komplexe Fragen zu erstellen.cloidnerux hat geschrieben:Der Vorteil einer Datenbank ist die Möglichkeit über die Abfragen bestimmte Datensätze auszuwählen, die deinem Auswahlkriterien entsprechen. Diese Abfragen können auch sehr kompliziert sein und Daten aus diversen Tabellen anhand der Zusammenhänge auswählen. Das ist die stärke einer Datenbank.
Im Hintergrund muss die Datenbank auch die Daten speichern, dass kann auch in XML passieren.
Ich würde gerne die Daten selbst speichern, allein um ein Gefühl dafür zu bekommen und um dies mal zu testen.cloidnerux hat geschrieben: Die Daten selber speichern hat den vorteil, dass du eine größere Kontrolle hast, mitunter eine höhere Geschwindigkeit und eine kleineres Softwarepaket, da du weniger overhead hast.
Der Nachteil ist aber, dass du dich um die Verwaltung selber kümmern musst, was bei einfachen/linearen Daten kein Problem sein sollte.
Aber ich frage mich, wie ich das logisch aufbauen soll, da es viele Verknüpfungen geben wird und ich dafür leider noch kein Konzept habe (bzw. mir noch keins erlesen habe).
Des Weiteren frage ich mich, wo man diese XML-Daten speichern soll, ohne dass durch evtl. löschen von Daten (durch User) das Programm nicht mehr funktioniert...
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: XML oder doch lieber lokale Datenbanken?
Aber nur, wenn du die Daten vorher in entsprechende Strukturen abgelegt hast.Aber über LINQ schafft man es doch auch recht komplexe Fragen zu erstellen.
Bei deinem Programm. Wenn der Nutzer das Bedürfnis hat, Dateien zu löschen die er nicht kennt, dann ist es seine eigene Schuld.Des Weiteren frage ich mich, wo man diese XML-Daten speichern soll, ohne dass durch evtl. löschen von Daten (durch User) das Programm nicht mehr funktioniert...
Verknüpfungen funktionieren meistens über IDs. Jeder Datensatz hat eine eigene ID, um auf einen anderen Datensatz zu verweisen brauchst du nur die ID und die Information, in welcher Tabelle/Container dieser liegt.Aber ich frage mich, wie ich das logisch aufbauen soll, da es viele Verknüpfungen geben wird und ich dafür leider noch kein Konzept habe (bzw. mir noch keins erlesen habe).
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: XML oder doch lieber lokale Datenbanken?
Davon gehe ich mal auscloidnerux hat geschrieben:Aber nur, wenn du die Daten vorher in entsprechende Strukturen abgelegt hast.
Ich installiere sie einfach über ClickOnce (c# vs 2012), da mache ich mir nicht sonderlich Arbeit mit. Ich kann in dieses Verzeichnis auch Daten.cloidnerux hat geschrieben:Bei deinem Programm. Wenn der Nutzer das Bedürfnis hat, Dateien zu löschen die er nicht kennt, dann ist es seine eigene Schuld.
Das was mich dabei interssiert ist, ob dann die Daten gelöscht werden, wenn man ein Update des Programmes installiert, daher würde ich es am liebsten iwo lokal installieren. Ich würde da dann vorschlagen es unter C:\Programme\Programmname zu machen.
Verknüpfungen funktionieren meistens über IDs. Jeder Datensatz hat eine eigene ID, um auf einen anderen Datensatz zu verweisen brauchst du nur die ID und die Information, in welcher Tabelle/Container dieser liegt.
Wie meinst du das mit ID's in XML-Daten? ID als Attribut jeweils anlegen?
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: XML oder doch lieber lokale Datenbanken?
Eine Datenbank dient erstmal dazu, Daten abzulegen und sie wieder zu laden. Das kannst Du häufig durch Serialisierung selbst erledigen.xerion21 hat geschrieben:Ab wann lohnt es sich eigentlich wirklich eine lokale Datenbank zu erstellen und wann nicht?
Ein Datenbanksystem hilft Dir (je nach eingesetzter Lösung) dabei aus den vielen gleichartigen Daten bestimmte Datensätze zu finden oder zu ändern, z.B. über SQL. Wenn diese Datenpflege für Dich selbst aufwendig zu programmieren ist, lohnt es sich über den Einsatz einer Datenbank nachzudenken.
Am besten malst Du Dir mal alle Datenstrukturen und deren Verbindungen miteinander auf. Wenn Du viele Linien hast, spricht das eher für SQL.xerion21 hat geschrieben:Ich schreibe gerade an einer Trainersoftware in C# und muss Daten über verschiedene Spieler speichern (Kontaktdaten, Leistungen) und natürlich auch Daten über Anwesenheit, Trainingseinheiten, Spiele etc.
Wenn Du gar keine Linien hast für XML.
XML ist wie HTML nur eine Beschreibung von Daten.xerion21 hat geschrieben:Da ich von XML noch nicht so die Ahnung habe und mich erstmal eingelesen habe, stellt sich mir die Frage, wie dies besser umzusetzen ist.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: XML oder doch lieber lokale Datenbanken?
Es sind viele Datenverbindungen.xin hat geschrieben:Am besten malst Du Dir mal alle Datenstrukturen und deren Verbindungen miteinander auf. Wenn Du viele Linien hast, spricht das eher für SQL.
Wenn Du gar keine Linien hast für XML.
Meistens wird ein Objekt mit vielen weiteren in Verbindung gebracht.
Da ich noch in der Planung bin, habe ich noch kein fertiges Konstrukt. Sofern dies fertig ist, werde ich es dir zusenden.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: XML oder doch lieber lokale Datenbanken?
Wenn Du viele dieser Verbindungen abfragen musst und gleichzeitig anfordern musst, dann spricht hier einiges für ein SQL-System.xerion21 hat geschrieben:Es sind viele Datenverbindungen.xin hat geschrieben:Am besten malst Du Dir mal alle Datenstrukturen und deren Verbindungen miteinander auf. Wenn Du viele Linien hast, spricht das eher für SQL.
Wenn Du gar keine Linien hast für XML.
Meistens wird ein Objekt mit vielen weiteren in Verbindung gebracht.
Da ich noch in der Planung bin, habe ich noch kein fertiges Konstrukt. Sofern dies fertig ist, werde ich es dir zusenden.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: XML oder doch lieber lokale Datenbanken?
Die Verbindungen werden oft gleichzeitig oder hintereinander gefordert.Xin hat geschrieben:Wenn Du viele dieser Verbindungen abfragen musst und gleichzeitig anfordern musst, dann spricht hier einiges für ein SQL-System.xerion21 hat geschrieben:Es sind viele Datenverbindungen.xin hat geschrieben:Am besten malst Du Dir mal alle Datenstrukturen und deren Verbindungen miteinander auf. Wenn Du viele Linien hast, spricht das eher für SQL.
Wenn Du gar keine Linien hast für XML.
Meistens wird ein Objekt mit vielen weiteren in Verbindung gebracht.
Da ich noch in der Planung bin, habe ich noch kein fertiges Konstrukt. Sofern dies fertig ist, werde ich es dir zusenden.
Also Beispiel:
Ich rufe eine Mannschaft auf (in dieser sind verschiedene Spielerobjekte). Dann sollte man einen Spieler auswählen können und bekommt dann von diesem verschiedene Informationen (wie eine Karteikarte), welche aber aus verschiedenen Bereichen stammen (Kontaktdaten, Daten über Spiele, Daten über Tests, Anwesenheit im Training). Ich möchte aber auch z.B. auch auf die Anwesenheitsliste zugreifen können, mit den verschiedenen Spielerelementen.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: XML oder doch lieber lokale Datenbanken?
Alles was gleichzeitig gefordert wird: "Nimm den Spieler, der mit Vornamen Blabla heißt und nie zum Training kommt" - also über mehr als eine Tabelle geht, spricht für SQL. Auch wenn die Datenbank groß ist und nicht komplett im Speicher gehalten werden kann: Datenbank.xerion21 hat geschrieben:Die Verbindungen werden oft gleichzeitig oder hintereinander gefordert.
Wenn Du Daten nur auf der HDD ablegen möchtest und beim Programmstart laden möchtest, um dann im Speicher zu arbeiten: XML, JSON, CSV, Binär, eigenes Format... da ist XML nur eine Möglichkeit, die Dateien auf die Platte zu schreiben, die man mit anderen Programmen leichter wieder einlesen kann, als ein eigenes Format.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.