XML vs SQL für kleine Projekte?

10

Ich arbeite an einem kleinen Projekt, das jeweils nur einen Benutzer hat, da es sich um eine lokale Anwendung handelt (entwickelt in WPF und C #). Zum Speichern von Daten habe ich überlegt, eine XML-Datei zu verwenden, aber ich frage mich, ob dies der beste Ansatz wäre.

Wofür die Daten sind:

  • Shedules
  • Bibliothek von Dateien in Ordnern (mit Künstlernamen, Titel, Speicherort auf der Festplatte)
  • Möglicherweise Statistiken basierend auf den Zeitplandaten
  • ...

Informationen zur Bibliothek wären in XML in Ordnung, aber über den Rest bin ich mir nicht so sicher. Auch LINQ to SQL scheint in Bezug auf die Entwicklungsgeschwindigkeit viel rentabler zu sein als LINQ to XML. Ist das richtig oder irre ich mich? Ich war mir nicht sicher, ob ich dies auf SO oder hier posten sollte, aber es schien hier angemessener zu sein!

Vielen Dank im Voraus

Citroenfris
quelle
2
"Ein Benutzer zu einem Zeitpunkt" ist ein Code für "in sechs Monaten wird dies unsere einzige Einnahmequelle sein und 4.000 gleichzeitige Benutzer unterstützen müssen". Planen Sie entsprechend :)
Bryan Boettcher
Sie müssen nicht einmal einen SQL Server-Dienst ausführen. Sie können ihn einfach zu einer Datenbank mit angehängter Datei machen, wenn Sie sich Sorgen über die Migration von Computer zu Computer machen.
Peter Smith
2
Egal, für was Sie sich entscheiden, erstellen Sie eine Abstraktionsschicht, damit Sie bei Bedarf problemlos zu einem anderen Schema wechseln können
Ratschenfreak

Antworten:

13

Wenn Sie viele E / A-Vorgänge ausführen, ist SQL die bessere Wahl. SQL ist so konzipiert, dass es gut funktioniert, um Daten abzurufen / zu speichern. Deshalb verwenden wir es zum Speichern von Daten auf einer Website im Gegensatz zu XML.

XML eignet sich für lesbare Daten, die wie beabsichtigt von Anwendungen gemeinsam genutzt und interpretiert werden können. Das XML-Parsen beinhaltet VIELE Zeichenfolgenmanipulationen, die mit zunehmender Größe des Datensatzes immer kostspieliger werden können.


quelle
3
Vergessen Sie nicht die Compact Edition.
JeffO
2

Es hört sich so an, als könnten Ihre Daten möglicherweise unendlich wachsen (es sei denn, ich habe Ihre Anwendung falsch verstanden). In diesem Fall würde ich sagen, dass es für Effizienz und Leistung am besten ist, dauerhaften Speicher einem Datenbankmodul zu überlassen.


quelle
1

Gehen Sie mit dem Datenbankansatz. Es ist die bewährte Technologie für den Umgang mit Daten.

In Bezug auf das Leistungsproblem können Sie Ihren Zugriff möglicherweise beschleunigen, indem Sie über Indizes verfügen, für die in XML keine derartigen Mittel vorhanden sind.

In einer Datenbank können Sie statistische Daten mithilfe von Aggregatfunktionen berechnen. In XML müssen Sie diese codieren.

Mithilfe einer Datenbank können Sie die Datenbankstruktur relativ einfach ändern (Spalte, Tabelle usw. hinzufügen), und es gibt Tools, mit denen Sie die Daten zwischen Datenbanken verschieben können, wobei Sie dies wie in XML selbst tun müssen.

In einer Datenbank können Sie Integritätsregeln erzwingen und die Benutzer bei Bedarf ihre eigenen Auswahlen schreiben lassen, was in XML nicht ganz einfach ist.

In der Datenbank können Sie Daten sehr einfach sortieren und Sicherheit hinzufügen. Wenn Sie eine Datenbank verwenden, können Sie Größe und Parallelität vergessen, sodass Ihre Anwendung in Zukunft ohne Codeänderungen wachsen kann.

Verwenden Sie für die oben genannten eine Datenbank! EK

Keine Chance
quelle