3

WorldofWarcraftのRAWRに似た種類の百科事典プログラムを作成しています。SQLデータベースにデータを保存するつもりはありませんが、これらのより軽いケースの使用に代わるものがあると確信している場合は、常にこれを行うのは非常に難しい条件になっています。

たとえば、私のプログラムでは、ユーザー入力による新しいデータの作成も、ユーザー入力によるデータの削除もありません。コード化した情報を表示するプログラムです。それ以上でもそれ以下でもありません。

これらのものをどこに保存すればよいですか?保存とは、プログラムをリリースするときに展開用に保存することです。

私は主に文字列変数といくつかのビデオ/アニメーションだけを保存するつもりです(私の他の質問を参照してください

助けてくれてありがとうSO。いつものように、皆さんはロックします!

4

5 に答える 5

5

静的データ用のデータベースの何が問題になっていますか?データは静的ではありません。DBを使用すると、データベースで使用する場合、データパッケージを作成するための管理/設計プログラムがはるかに簡単になります。フラットファイルに保存する場合、データの検索方法を決定するクエリロジックを作成するのか、それとも単純なSQLクエリを発行するのか。

System.Data.Sqliteを使用すると、サーバープロセスのない単一のデータファイルである組み込みデータベースを使用できます。これは非常に人気のあるデータベースです。私はあなたが毎日それと対話することを喜んで賭けます。さらに、データを設計および操作するためのVisualStudioのすべてのすばらしいRAD機能をサポートします。

于 2009-12-19T03:05:29.313 に答える
3

古き良きファイルシステムの何が問題になっていますか?

アプリケーションフォルダーの下にサブフォルダーを作成するだけで、コード内では、アプリケーションフォルダーからの相対パスを使用して、常にこのサブフォルダー内のファイルを参照します。例えば。

string imagePath=Path.Combine(Environment.CurrentDirectory,"SubFolderName\\picture.jpg");

私は自分でSQLiteを使用していて気に入っていますが、多くのクエリ操作を実行する必要があるとは言わないので、それでもニーズには行き過ぎかもしれません。

また、SQL Server / SQLiteなどのリレーショナルデータベースは、バイナリデータの保存にはあまり理想的ではありません。彼らは間違いなく可能ですが、スケーリングの問題に遭遇する可能性があるため、それは彼らが最善を尽くすことではありません。

画像、音楽、ビデオなどのバイナリファイルがたくさんある場合、私の最初の選択肢はファイルシステムです。

展開は、必要なすべてのリソースファイルをサブフォルダーに配置してから、サブフォルダーをアプリケーションフォルダーに配置するのと同じくらい簡単です。

もう1つのオプションは、ファイルを埋め込みアセンブリリソースとして保存することです。これは、メインアプリケーションの実行可能ファイル内にあるか、より大きなファイルがある場合は別のdllアセンブリにある可能性があります。ユーザーがファイルを追加または削除しないと言っているので、これは実行可能なオプションです。

于 2009-12-19T03:31:35.470 に答える
2

私の答えは、あなたが話しているデータの量によって異なります。純粋な設計の観点からは、常にデータをアプリケーションロジックから分離する必要があります。したがって、外部データファイルが必要です。ただし、実際にはそれほど多くのデータがなく、比較的静的である場合は、それをXMLファイルに入れ、LinqtoXMLを使用してデータをクエリできます。XDocumentクラスを見てください。

そうは言っても、データベースは一般的にあなたの生活を楽にしてくれます。特に、リレーショナルマッピングツールやオブジェクトデータベースへの優れたオブジェクトを入手する場合はなおさらです。SubSonic SimpleRepositoryのようなものを使用して、データをSQLiteデータベースに配置することを検討することをお勧めします。または、さらに良いことに、DB4Oのような純粋なオブジェクトデータベースの使用を見てください!

于 2009-12-19T03:12:12.713 に答える
0

xmlまたはバイナリファイルのいずれかが私の提案になります

于 2009-12-19T02:49:31.747 に答える
0

私の最初の考えは、XML(推奨)またはMarkEwerやyetabpのようなバイナリが示唆していたことです。SQLLiteの提案もかなり良いように聞こえます。

もう1つのオプションは、OleDbプロバイダーを使用したExcelスプレッドシートです。SQLステートメントを使用してデータの読み取りと書き込みを行います。Excelのルートを使用する場合は、次のようないくつかの癖があることに注意してください。1)参照するブックのシートを指定する方法(SQLでテーブルを参照する方法+ドル記号に類似)およびいくつかの括弧)。2)テキストのみの列があり、1つのセルに数値がある場合、データを少しマッサージしない限り、OleDbは例外を除いて一時停止します。奇妙に聞こえるかもしれませんが、これは単なる注意事項です。

.NETからExcelを使用する場合、他にもいくつかの小さな癖があると思いますが、現実の世界では2回しか実行していません(両方の時間に大量のデータが含まれていましたが)。エンタープライズ環境には絶対にお勧めしません。

どちらの方法でも、マルチメディアをファイルシステムに保存することをお勧めします。次に、SQL、Excel、XML、またはファイル名を指すバイナリのいずれであっても、データレコードを取得します。それはあなたのためにデータ管理をはるかに簡単にします。

于 2009-12-19T16:35:51.130 に答える