Winform
データベースを必要とするアプリケーションを構築しています。
データベースは、カスタム クラスの項目の配列を保存する必要があります。
Name
Date
Duration
Artist
Genre
配列を増やすたびに保存するファイルを使用してデータベースを構築する必要がある場合。300 個ほどのアイテムの配列を保存するのに待ち時間はありますか?
そして 2 番目のデータベースは SQL を使用することです。
それらの違いは何ですか?そして、私は何を使うべきですか?
誰かがコメントで述べたように、SQLite はこのタイプのシナリオで非常にうまく機能するはずです。
データ セットがかなり小さいままであると思われる場合は、XML やファイルなどを検討することをお勧めします。
いずれにせよ、ストレージ ロジックをインターフェイスの背後に隠し、アプリケーションの winforms 部分からのみ呼び出すことを強くお勧めします。これにより、必要に応じて後でストレージ ソリューションを交換することができます。
コメントに応じて更新: 別の DB システムの代わりに SQLite を使用する理由は、SQLite をアプリケーションに直接統合できるためです。他の DBMS は通常、アプリ内から接続するだけの外部システムになります。
C# アプリケーション内での SQLite の使用に関するこの短い記事など、簡単な Google 検索で多くの情報が得られます。
将来のデータのサイズについて考える必要があると思います。
将来、データが指数関数的に増加することがわかっている場合は、SQL のようなデータベース システムを使用する必要があると思います。
それ以外の場合、少数のレコードのみの場合は、代わりに XML ファイルを使用できます。
MS SQL データベースを使用している場合は、データの保存中に接続を開き、sqladapter を使用してデータベースに書き込むことができます。
代わりに XML ファイルを使用している場合は、独自のビジネス オブジェクトのシリアル化に XMLSerializer クラスを使用できます。
ファイル vs データベース? - 簡単です。データベースとは - ファイルです。そのファイルを操作する方法を知っているエンジンを持っているのはそれだけです。ファイルを使っていると、ふと「もしも?」と考える必要が出てきます。書き込み中にファイルが破損した場合はどうなりますか。または、コンピュータが書き込みの途中でシャットダウンした場合はどうなりますか? DBMS は、コミットされていないデータ ファイルなど、あらゆる種類のメカニズムを発行することで、この問題に対処します。このメカニズムを自分で提供する必要があります。
これが、重要でないデータのみをファイルに書き込む必要がある理由です。たとえば、一部のユーザー設定。そのファイルを失った場合、ユーザーはコントロールのサイズを再度変更できますが、データが失われることはありません。または、ログ ファイルは、ファイルのもう 1 つの有効な使用法です。丸太を失えば、なくても生きていけるからです。しかし、数か月分のデータを失うと...
あなたの場合、ユーザー履歴がどのように重要かわかりません。300 項目は大きな配列ではありません。オブジェクト (クラス) を作成して XML を使用し、そのプロパティを XML 属性でマークしてから、XML シリアライザーを使用して履歴を XML http://msdn.microsoft.com/en-us/library/system.xml.serializationにシリアル化できます 。 .xmlserializer.aspx
しかし、それが大きくなり、その一部を古くして削除する予定がない場合は、RDBMS を検討してください。