.純データの保存-データベースのvsシングルファイル
-
29-09-2019 - |
質問
私C#ことができるアプリケーションユーザの入力情報は、お客様や仕事です。の情報等の入手ができなくなります。
- お客様:名前、番号、住所、メール、ジョブサイトです。
- 求人サイト:コミュニケーションした.
ここで私のスペックが必要です。
- どのような量のデータを入力します。
- シングルユーザー当たります。な兼職の状況又はエントリーが表示されます。
- 許可ユーザー作品/エクスポートするデータを外部ファイルを簡単に共有アプリケーション/ユーザー
- できるユーザのクエリを表示お客様の異なる組み合わせのお客様情報-求人サイト情報です。
- データは考えられないまたは操作以外のものに限ります。
- のプログラムを走らせることになりほとんどいつも、最小限のタスクバーがあります。
- 起動時間はあまり重要でないと思う、しかししていきたいと思います質問できる。
このようにも向けのデータベースが非常に軽量です。しかしも必要としない制限などのデータを保管します。にご同意された場合を使えばいいか迷っているデータベース、ぜひ<url>までご連絡くださいうえに最適です。だいたデータベースを使用する必要がありますしてくださいその他のご提案をお返事ありがとうございます。いることができてしまいます。
他のヒント
私の提案は、SQLiteを使用することです。ここで見つけることができます: http://sqlite.org/. 。そして、ここでC#ラッパーバージョンを見つけることができます: http://sqlite.phxsoftware.com/
SQLiteは非常に軽量で、このような軽量エンジンにはかなり強力なものがあります。調べることができるもう1つのオプションは、Microsoft Accessです。
あなたは再び間違った質問をしている:)
より良い質問は、「データストレージの実装を変更できるアプリケーションを構築するにはどうすればよいですか?」です。
リポジトリパターンを適用して適切にインターフェイスすると、交換可能な永続性レイヤーを構築できます。したがって、1つの実装から始めて、ビジネスまたはアプリケーションレイヤーを再設計する必要がある必要な必要なwihtoutを変更することができます。
リポジトリインターフェイスを取得したら、多くの異なるアプローチで実装を試すことができます。
フラットファイル - データをXMLとして持続することができ、メモリ内のコンテンツ全体を保存できるデータがあまりない場合(起動時にファイルを読み取り、シャットダウン時にファイルを書きます)。インメモリXMLを使用すると、データベースインデックスなどに関係なく非常に高いスループットを得ることができます。
分散型DB -SQLiteまたはSQLコンパクトはうまく機能します。彼らは多くのDBの利点を提供し、インストールは必要ありません
ローカルDB -SQL Expressは、軽量とフル機能のDBの間の優れた中間地面です。アクセスは、慎重に使用すると十分です。主な利点は、MS Officeに含まれていること(デフォルトではインストールされていませんが)であり、一部のITグループは、SQL Expressよりもマシンにインストールされたアクセスをより快適に使用できます。
フルdb -MySQL、SQL Server、PostgreSQL、et al。
特定の要件を考えると、XMLベースのフラットファイルにアドバイスします。唯一の条件は、アプリケーションのメモリ使用量がファイルのサイズに直接相関することで問題ないことです(データはテキストであるため、 XMLの重量で、これには 多く 非常に大きくなるためのエントリの)。
これがあなたの要件によってリストされている長所/コンソです:
短所
- 入力されたデータの量に制限はありません。
- インメモリXMLを使用すると、アプリケーションがスケーリングされないことを意味します。 10MBのデータファイルを簡単に処理できます。100MBは問題になるべきではありません(システムがRAMで低い場合を除く)。
プロ
- アプリケーションごとに単一のユーザー。同時アクティビティや複数のユーザーはありません。
- XMLはメモリに読み取り、プロセス(AppDomain、本当に)によって保持できます。並行性が非常に狭い懸念事項であるシングルユーザーシナリオには完全に適しています。
- アプリケーション/ユーザー間で簡単に共有できる外部ファイルにユーザーエントリ/データをエクスポートできるようにします。
- XMLはエクスポートに最適で、Excel、データベースなどに簡単にインポートできます...
- ユーザークエリは、顧客情報/職業サイト情報のさまざまな組み合わせに基づいて顧客を表示できるようにします。
- linq-to-xmlはあなたの友達です:d
- データがアプリケーションの外で表示または操作されることはありません。
- ....その後、それを完全にメモリに保持することは問題を引き起こしません
- プログラムはほとんど常に実行され、タスクバーに最小化されます。
- したがって、スタートアップでXMLをロードし、シャットダウン時に書き込むことは受け入れられます(ファイルが非常に大きい場合は時間がかかる可能性があります)
- スタートアップの時間はそれほど重要ではありませんが、クエリをかなり速くしたい
- XMLの読み取りは、起動時に比較的遅いでしょう。しかし、それがメモリ内にロードされている場合、それは打ち負かすのが難しいでしょう。与えられたDBは、DBエンジンを開始する必要があります。インタートップ/クロスプロセス/クロスネットワークの呼び出しを行うこと、結果がディスクからロードされる(エンジンでキャッシュされていない場合)など...
どうですか sqlite? あなたのアプリケーションに適しているようですね。
使用できます system.data.sqlite .NETラッパーとして。
まさにSQLサーバー-エクスプレスは無料です。そうするのではなく、なぜデータベースを使うなら、なぜなのか?この種の問題などのデータベースは、SQLサーバーは非常に強力で広く使われているデータベースなく一部のその他のソリューション す を提供する必要があり良い理由なくならないと思うと、データベースです。
データベースはぴったりです。 sqlite 他の人が言及したように良いです。
ローカルインスタンスを使用することもできます SQL Server Express Microsoft Development Stackの他の部分との統合の改善を活用するには(C#に言及しているため)。
3番目のオプションは、ドキュメントデータベースです カラス それはあなたのデータの音から収まるかもしれません。
編集
4番目のオプションは、試すことです 電気のスイッチ ベータ版が数日で出てきたとき。 (8-23-2010)
/編集
データストレージ(ハードディスクの空きスペース)には常に制限があります。ウィキペディアによると、SQL Expressは制限されています SQL Server Express 2008 R2の10 GB