これらのどれが私のアプリケーションのニーズに最も適しているのか疑問に思っていました. アプリケーションは複数の PC に分散され、共通のデータベースを共有します。このデータベースには、最大で約 20,000 のエントリを含めることができます。基本的に、これは単なるミーティング マネージャーであり、DB 内の各エントリはミーティングを表します。
たとえば、特定の人物が関係するすべての会議や、特定のオブジェクトとのすべての会議を表示したい場合があります。これは私が作成したいデータ表現にすぎないため、この時点ではそれほど重要ではありません。
実際、私には特定の制限があります。
- 私はC#でアプリケーションをやっています
- ユーザーの PC に何もインストールできません (必要に応じて .exe + dll のみをコピーする必要があります)。
- データベースはネットワーク ストレージ上に配置され、最大 10 台の PC から同時にアクセスされる可能性があります
- 私は SQL Server CE も SQLite も使用したことがありません (実際には他の DB も使用していません)。
私が最初に思いついたのは、純粋な XML データベースを使用することでした。これは、.NET クラス シリアライザーを使用すると非常に簡単だからです。データベースを変更するには、ユーザーはファイルへの書き込みアクセスを取得する必要があります。その間、他のすべてのユーザーは読み取り専用になります。このアクセス権を取得したときに作成されたファイルを介して、誰が書き込みアクセス権を所有しているかをいつでも知ることができます。読み取りモードの各アプリケーションには、XML ファイルを監視する実行中のプロセスもあり、データベースに変更が加えられた場合にユーザーに通知し、ユーザーが再読み込みできるようにします。
SQLite と SQL Server CE について少し聞いたことがありますが、スケーラビリティとパフォーマンスの点で正しいアプローチがあるかどうかはよくわかりません。それらの使い方を学ぶことは気にしません。私の主な懸念は、ユーザーの PC に何もインストールできないことと、アプリケーションの展開をユーザーにとってできるだけ簡単にしたいことです (理想的には、アプリケーション フォルダーをコピーして貼り付けます)。
だからここに質問があります:
EDIT 2:私が求めているものではないSQLiteとSQL Server CEに関する議論が生じる可能性があるため、閉鎖されたと思います
- 上記のような状況では、XML ファイルと真のデータベースのどちらを使用するのがよいでしょうか?
- 多くのエントリがある場合、「真の」データベースはパフォーマンス以外に XML よりもどのような利点がありますか?
類似の質問: Xml または Sqlite、データベースの Xml をドロップするのはいつですか?
編集:私がいる文脈を理解するのを助けるために、ここにあなたのためのより多くの情報があります:
実際に使用するシステムはワードです。すべては、ネットワーク上の一部のユーザー間で共有されるフォルダー内のファイルに書き込まれます。ユーザーは、このファイルから情報を取得して、必要なデータ表現に従って他のファイルを作成します。彼らのプロセスを容易にするアプリケーションを作成したいと考えています。彼らは自分たちのシステムに慣れているので、私のアプリケーションをインストールするためになんらかの操作が必要な場合、彼らは自分たちのシステムに固執したいと思うでしょう。各インストールは、特に非公式アプリケーションの場合、遅くて複雑な IT サービスを通過する必要があります。
これらの PC は、おそらく、ユーザーが一般的なタスク以外のことを行うのを妨げています。そのため、アプリケーションをできるだけシンプルにしたいと考えています (実行可能ファイルと dll を USB キー経由で渡すことができ、最小限のユーザー操作でそのまま実行できます)。