3


1

私は。NETで小さなWindowsアプリケーションを開発しています。 どのDBを使うべきですか?

DBの構造

表1:3項目以下:50レコード(追加、削除)

表2:10個以下のフィールド:10〜20レコード(追加、削除)

私はXMLDatabaseを使うことを考えましたが、それを使うのは賢明ではないと言う人もいます。 その理由は何ですか? XMLファイルをDBとして使用しても問題ない場合は、いくつかのチュートリアルまたはベストプラクティスを提案できますか。 私は以前XMLファイルを扱ったことがあります。 それをDBとして使用することになると何か違うことはありますか?

私はまた、しばらくして私の友人にアプリケーションを配布することを計画しています、そして、これらの人々はプログラマーではありません、そして、彼らは技術に精通していません。

それで、私がSQLサーバーを使っているなら、どうやって他のマシンにそれをデプロイすることができますか? それをセットアップファイルに追加するにはどうすればよいですか。

更新:答えてくれてありがとう。 私はSQLiteのために行くつもりですそしてここに チュートリアル SQLiteと .net if someone is interested.

10 Answer


12


SQLiteは小規模なアプリケーションに適しています。 それは速く、有能で、そして設置面積が小さいです。

Netについては、私が以前のプロジェクトで使用した素晴らしいマネージドSQLiteライブラリがあります。

http://sqlite.phxsoftware.com/

編集する

SQLiteとSQL Server Compactエディションの間の選択を考えれば、SQLiteがサポートしていない高度な機能を必要としない限り、ほとんど常にSQLiteを使いたいと思うでしょう。

[SQL Server Compact Editionのインストールサイズを修正しました。 私が最後に調べたとき、それははるかに不利でした。 今と同じくらい良いかもしれません。]


4


あなたが言ったことに基づいて、私はSQLiteを見るか、またはSQL Server Compact Editionを見るかのどちらかです。

Compact Editionの推奨事項は、SQL Serverプロセスが常に実行されていないようにすることです。 コンパクト版は、アプリケーションの実行中にのみ実行されます。

更新

2つの間のサイズになると、SQLiteのサイズは1 MB弱です。 SQL Server Compactのエディションは1.8mbです(確認については MS Documentを参照してください)。


3


まあ。 予測されるデータベースのサイズはとても小さいので、 それは速く、そしてうまくいきます。 さらに、あなたのアプリと一緒に配布するDBエンジンはありません。

免責事項:IFFはあなたのデータ要件が小さいままであることを覚えておいてください(そしてそのシングルユーザーを想定して)。 複数のユーザーが同時にデータにアクセスしたり、データサイズが大きくなったり、ある種のRDBMSを使用しているときに最も効率的な機能が必要になったりすると、この手っ取り早い解決策は解決しませんそれがすべてうまくいくようにするためにあなたが焼く必要がある余分なコード。 =)


2


SQLiteのような小さなもの、あるいはアプリケーションに内蔵のSQLServer Expressデータベースを使用するだけで済むかもしれません。


2


SQL Serverを使用している場合は、データベース全体を作成するためのスクリプトを生成できる機能があります。 有効な接続文字列が与えられたらスクリプトを実行することは、通常の.NET Sqlクラス(SqlConnectionなど)を介して行うのがかなり簡単です。

ただし、このような単純なデータモデルでは、SQL Serverはやり過ぎる可能性があります。 あなたはSQLiteのような他のより小さなDBを調査するべきです。


2


John Saundersは、SQL Server Expressについて言及しました。 公平を期すために、Oracle ExpressとDB2 Expressもあります。 それぞれの機能リストはほぼ同じです。 すべて個人用には無料です。


1


誰があなたのケースで永続化のためにXMLの使用を忠告したかは分かりませんが、永続化されたデータの潜在的な合計サイズを考えると、XMLは.NETアプリケーションへの単純な統合のためあなたにぴったりです。

1つのレコードに最大10のフィールドを持つ100のレコードについて話しているだけのようです。 これはXML永続データから簡単に前処理され、メモリ内で処理される可能性があります。 私は潜在的に問い合わせにLINQを使うことについてNoCarrierに同意します。

あなたは単純さを探しています、そしてあなたのユーザーは彼らがサードパーティの依存なしですることができるように聞こえます。


0


SQL Server Express、またはSQL Server Compact Editionを調べてください。


0


データソースソリューションとしてXMLに同意します。 良いXML本があります。 PHPをASP.NETに簡単に変換できます。 XMLとASP.NETに関する無料の電子書籍もあります。

XMLがあなたにもたらす利点は、それが単純なデータ転送言語であり、あなたが展開するマシンにインストールするためにサードパーティのデータベースサーバーを必要としないことです。


0


_ _ 表1:3項目以下:50レコード(追加、削除)

表2:10個以下のフィールド:10〜20レコード(追加、削除) _ _

あなたの記録が適当なサイズのものであるなら(あなたはあなたの映画のような何かをあなたのアプリに保存したくないでしょう?)私は起動時にフラットテキストまたはxmlファイルから読み、すべてをメモリに保存することを勧めます。 バッファをディスクにフラッシュすることができます。

私はあなたの他の要件を知りません(並行性についてはどうですか?)しかし、本当のDBMSはあなたの問題をやり過ぎるかもしれません、そしてsqlite(私は大好きです)は解決策ではないかもしれません)