Ist eine Datenbank, die richtige Wahl für die Datenspeicherung für meine C # -Anwendung?

StackOverflow https://stackoverflow.com/questions/3514284

  •  29-09-2019
  •  | 
  •  

Frage

Ich entwickle eine C # -Anwendung und wollen sicher sein, ich die beste Wahl für die Datenspeicherung wählen, dass passt diese Angaben.

Das Programm kann eine unendliche Menge an Daten, sondern dass die Daten nur von einem einzigen Benutzer verwendet werden, das die Anwendung verwendet. Jedes Mal, wenn die Anwendung geschlossen ist, muss ich die Daten speichern, und es muss in geladen werden, wenn die Anwendung gestartet wird.

Ich habe in Datenbanken gesucht, aber bin nicht sicher, welche am besten für meine Bedürfnisse geeignet sein würde. Außerdem frage ich mich, ob ich eine Datenbank benötigen bei allen oben genannten Spezifikationen gegeben, vielleicht sollte ich nur eine Binärdatei / XML-Datei Implementierung Serialisierung und Deserialisierung.

Punkt mich in der richtigen Richtung, bitte!

Danke, OC

EDIT: Ein wichtiger Faktor I sind vergessen, ist die Notwendigkeit, einen Benutzer zu erlauben, um alle Einträge zu speichern er / sie es in eine externe Datei eingegeben und exportieren, die leicht zwischen Anwendungen / Benutzern gemeinsam genutzt werden können, .

War es hilfreich?

Lösung

Ohne zu wissen, mehr über das, was Ihre Anwendung tut, es ist schwer (für uns) zu sagen, ob eine Datenbank die richtige Wahl ist. Es gibt jedoch einige Faustregeln, dass Sie Ihre Entscheidung zu helfen Steer verwenden können.

Eine Datenbank kann eine gute Wahl sein, wenn:

  • Die Daten können von mehreren Benutzern verwendet werden.
  • Wenn die gleichzeitige Aktivität möglich ist, die korrekt gespeichert werden müssen.
  • Wenn die gesammelten Daten nicht alle brauchen in dem Speicher auf einmal geladen werden.
  • Wenn Sie möchten, auf komplexe Weise zu Abfrage oder Bericht über Daten können.
  • Wenn Sie wollen Transparenz haben in die Daten unter Verwendung von Standard-Tools gespeichert werden.
  • Wenn die Änderungen meist lokalisiert sind, anstatt den gesamten Datenspeicher erfordern neu aufgebaut werden.
  • Wenn Sie Ihre Daten eignet sich für eine relationale (eher als eine hierarchische Darstellung sagen).

Eine Datenbank kann nicht die beste Wahl sein, wenn:

  • Sie nur einen einzelnen Benutzer bedienen.
  • Es gibt wenig gleichzeitige Aktivität und das gesamte Datenmodell muß neu erstellt werden, wenn die Änderungen zu speichern.
  • Wann wird es sehr wenig Daten sein, und es wird auf einmal in den Speicher geladen werden.
  • Wenn Sie Daten ist hierarchisch oder schwer relational zu modellieren.
  • Wenn Sie Ihre Anwendung dokumentenorientiert ist, und Dokumente (Dateien) werden an andere Benutzer gesendet werden.
  • Wenn es eine erhebliche Menge an Binärdaten eingestreut in den Daten Ihres Speicher.
  • Wenn Sie wollen Abhängigkeiten Tools von Drittanbietern oder Dienstleistungen zu vermeiden.
  • Wenn die Struktur Ihres Datenmodells ist wahrscheinlich häufig zu ändern.

Diese sind alle Faustregeln ... keine einzige Bedingung wird diktieren, ob eine Datenbank verwenden oder nicht. Sie müssen alle Überlegungen prüfen und entscheiden, ob eine Datenbank verwendet, wird Sie ausreichend Nutzen geben -. Oder nicht

In vielen Umgebungen (wie iPhone, zum Beispiel) gibt es eine integrierte Datenbank-Schicht direkt auf der Plattform. Es gibt auch Werkzeuge (wie NSCoreData), die Sie den Object-Relational-Modellierung (ORM) Impedanz Mismatch überwinden helfen. In solchen Fällen kann es sehr vielen Sinn machen, eine Datenbank immer für sehr einfachen Datenspeicher zu verwenden.

Es gibt auch eine Reihe von Open-Source-Daten Persistenzschichten (NHiberante, DB4O und andere), dass Hilfe simplify eine Datenbank als persistenten Speicher mit ... was, wenn Sie sie verwenden können, zugunsten der Gleichung verschieben kann mit Hilfe einer Datenbank.

Eine Datenbank kann die Entwicklung Ihrer Anwendung erheblich vereinfachen, wenn Sie Abfragen unterstützen müssen oder Funktionalität suchen. Relationale Datenbanken unterstützt eine Abfragesprache (SQL), die bewegt sich die Mühe zu identifizieren und Abrufen von Ergebnissen aus der Datenbank viel einfacher. Lassen Sie die Datenbank Sie kann das schwere Heben eine erhebliche Zeitersparnis - wie Datenbanken Abfrageoperationen korrekt und effizient speziell auszuführen. Dies ist jedoch auf Kosten einer relationalen Datenstruktur gut gestaltete kommt -., Die Sie erstellen müssen

Eine wichtige Überlegung ist, ob die Benutzer die Daten, die sie erstellen / verbrauchen Ihre Anwendung. Wenn Ihre Anwendung mehr Dokument orientiert ist (man denke an Word, Excel, Powerpoint), dann wird ein dateibasiertes Serialisierung Modell besser geeignet sein. Wenn Ihre Anwendung die Daten werden nicht weitergegeben werden. - dann kann eine Datenbank sinnvoll

Ein weiterer wichtiger Faktor ist, wie offen Sie Ihre Daten. Datenbanken speichern Informationen in gut definierten Strukturen (Tabellen), und das macht es einfacher für Sie (und Ihre Benutzer) direkt zugreifen und die Daten überprüfen. Speicherformate wie XML, auch dies erlauben, aber in etwas geringeren Ausmaß.

Andere Tipps

Eine ausgewachsene Client / Server-Datenbank wie MySQL oder SQL Server wäre wahrscheinlich für einen einzelnen Benutzer übertrieben. Aber Sie würden wahrscheinlich einige Verwendung von eingebetteter / file-basierten Engine erhalten wie SQLite oder SQL Server CE , vor allem, wenn Sie mehr mit den Daten tun wollen als nur nachschlagen einzelne Datensätze von ID. Wenn Sie die Datenspeicherung selbst tun, würden Sie schreiben viele Code müssen Aufzeichnungen bestimmte Kriterien erfüllen, zu erhalten, und ich alle, aber garantieren Sie nicht so gut wie die Menschen es tun, die sie für ein Leben tun.

Für mich persönlich sein mehr über die Daten als die Anzahl der Benutzer eine Anwendung verwendet wird.

Denken Sie über Ihre Daten, ist es kompliziert? Wenn Sie tatsächlich waren, um eine Datenbank zu erstellen, wie groß wäre es in Bezug auf Objekte, nicht die Menge der Zeilen ... wie viele Tabellen etc ...

Denken Sie an der Zukunft, obwohl sie nur ein Benutzer, die Daten noch erhöhen werden ich nehme an, und wie viele Daten wird jedes Mal gespeichert werden?

Die Datenbank Ansatz wird Ihre Entwicklung zweifellos beschleunigen - und Ihre Daten werden bessere Integrität als eine XML-Datei haben. Ich hasse Dateien mit persönlich ... Ich habe in der Vergangenheit Erfahrungen, bei denen Daten usw. aus der Datei gegangen fehlen.

Denken Sie daran, es gibt immer SQL Compact Edition sollten Sie Ihre Ressourcen begrenzt bleiben soll.

Wenn Sie Ihre Speicherfunktionen in einem Repository 1) 2) implementieren, können Sie mit dem Speichern von Dateien starten, und dann zu einem Datenbankspeicher zu bewegen, wenn Sie später einen Bedarf identifizieren, dies zu tun

1) http://martinfowler.com/eaaCatalog/repository.html
2) https://web.archive.org/web/20110503184234/http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/10/08/the-repository-pattern.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top