あなたはまた間違った質問をしています:)
より適切な質問は、「データ ストレージの実装を変更できるアプリケーションをどのように構築すればよいか」ということです。
リポジトリ パターンを適用し、適切に接続すると、交換可能な永続化レイヤーを構築できます。したがって、1 つの実装から始めて、必要に応じて変更することができ、ビジネスまたはアプリケーション層を再設計する必要はありません。
リポジトリ インターフェイスを取得したら、多くの異なるアプローチで実装を試すことができます。
フラット ファイル- データを XML として永続化できます。大量のデータではない場合は、完全なコンテンツをメモリ内に格納できます (起動時にファイルを読み取り、シャットダウン時にファイルを書き込むだけです)。インメモリ XML を使用すると、データベース インデックスなどを気にすることなく、非常に高いスループットを得ることができます。
分散可能 DB - SQLite または SQL Compact はうまく機能します。多くのDBの利点を提供し、インストールは不要です
ローカル DB - SQL Express は、軽量 DB とフル機能 DB の中間に位置します。アクセスは、慎重に使用すれば十分です。主な利点は、MS Office に含まれていること (既定ではインストールされません) であり、一部の IT グループは、SQL Express よりも Access をマシンにインストールする方が快適であることです。
フル DB - MySql、SQL Server、PostGreSQL など。
特定の要件を考えると、XML ベースのフラット ファイルをお勧めします。唯一の条件は、ファイルのサイズに直接相関するアプリケーションのメモリ使用量に問題がないことです (データはテキストであるため、. XML の重みを考慮すると、非常に大きくなるには多くのエントリが必要になります)。
要件ごとにリストされた長所/短所は次のとおりです。
短所
- 入力データ量に制限はありません。
- インメモリ XML を使用すると、アプリケーションが拡張できなくなります。10MB のデータファイルを簡単に処理できます。100MB は問題にならないはずです (システムの RAM が不足していない限り)。
長所
- アプリケーションごとに 1 人のユーザー。同時アクティビティや複数のユーザーはありません。
- XML はメモリに読み込まれ、プロセス (実際には AppDomain) によって保持されます。これは、同時実行性が非常に限定的な問題であるシングル ユーザー シナリオに最適です。
- アプリケーション/ユーザー間で簡単に共有できる外部ファイルにユーザー エントリ/データをエクスポートできるようにします。
- XML はエクスポートに最適で、Excel やデータベースなどに簡単にインポートできます。
- 顧客情報/求人サイト情報のさまざまな組み合わせに基づいて、ユーザー クエリが顧客を表示できるようにします。
- データがアプリケーションの外部で表示または操作されることはありません。
- ....完全にメモリ内に保持しても問題はありません
- プログラムはほとんど常に実行されており、タスク バーに最小化されています。
- そのため、起動時に XML をロードし、シャットダウン時に書き込むことができます (ファイルが非常に大きい場合、時間がかかる場合があります)。
- 起動時間はそれほど重要ではありませんが、クエリをかなり高速にしたいと考えています
- XML の読み取りは、起動時に比較的遅くなります。しかし、メモリ内にロードされると、打ち負かすのは難しくなります。特定の DB では、DB エンジンが開始されていること、相互運用/クロスプロセス/クロスネットワーク呼び出しが行われていること、結果がディスクからロードされていること (エンジンによってキャッシュされていない場合) などが必要です。