2016-07-07 17 views
1

私はプレイリストと私のすべての音楽の概要を保存するために使用するC#で非常に単純なデータベースを作成しています。私はこれを将来的には互換性のあるものにしたいと思っています。これを完全にテキストベースにする予定です。アイデアは、すべてのテキストファイルがテーブルであり、内容がJSON形式であり、テキストのすべての行がレコードであるということです。C#結合ファイル直接アクセス可能

私は各データベースに緩やかなファイルを持ちたくないので、私はzipファイルのようなものを考えていました。私はファイルにアクセスするたびに抽出して圧縮したくありません。 C#でストリームリーダ/ライタを使うことはできますか?Windowsでは1つのファイルしか見えません。

私は完全にこれが行く方法であると確信していません。だから、私は提案に公開している。

アップデート、 現在、C#の「ローカルデータベース」項目を使いこなしています。私は決してそれに耳を傾けなかった。それは非常にうまく解決策になるかもしれません。

Update2、 SQLiteはとてもシンプルなようです。私は過去にいくつかのPHPプロジェクトでMySQLを経験していますので、それは私に頭を躍らせてくれます。

+0

私が覚えている限り、Ionic.Zipライブラリでは、圧縮ファイル自体からでも圧縮ファイルを操作できます。 –

答えて

1

異なるファイルを含むコンテナとしてファイルを使用したいですか?もしそうなら、これを達成するための多くの方法があります。これらは、私が過去に使用される技術されています

  • 郵便番号:

などのZipなどの圧縮ファイルは、そのように動作することが知られているが、あなたの興味のためのソリューションとして使用することができます。仮想ファイルを格納することができます。それらは、少なくとも1ギガバイトまでのサイズが変わる可能性があります(testetですが、実装ベースのサイズ制限があるかどうかは現在わかりません)。

  • のSQLite:

SQLiteはオールドスクールに聞こえるが、それは一つの物理ファイルにすべてのデータベース関連のものを格納します。仮想ファイルごとにテーブルを持つデータベースを作成するのはすばらしいことです。この方法は、仮想ファイルが大量のバイトを使用しないか、sqliteフィールドのデータ型の制限に達しないことがわかっている場合に便利です。あなたの仮想ファイルがテキストラインを使うようになると、あなたは属性とタプルを形成することができます。このようにして、SQL固有の文を使用して、必要に応じてデータを照会してフィルタリングすることさえできます。

この種のコンテナ形式を自分で実装する方法はまだまだありますが、努力するよりも時間をかけて作業する必要があります。優れたアイデアが得られるようにチューニングし、実装をすぐに使用できるようにしましょう:

+0

私は過去にいくつかのmysqlを行っていましたので、それは私のために行く方法だと思います。しかし、私は余分なサーバーを使いたくありません。 – Bas

+0

sqliteはこのコミュニティと外国のライブラリによってうまくサポートされているので、sqliteへのステップを簡単にすることができます –

+0

私はSQLiteを自分のアプリケーションに最適な選択だと思っています。しかし、どのパッケージをダウンロードすればよいですか?私はこれをx86とx64の両方のシステムで動作させたいと思っています。また、私はインストールを好まない。 [SQLiteのダウンロードページ](http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki) – Bas

0

あなたのデータを検索しようとすることはありますか?次に、C#で実際のデータベース・マネージャーを使用します。組み込みのローカル・データベース・ファイルは、(SQLに精通している場合は)最も簡単な選択肢です。 zipファイルは、データスペースとコンパクトさ(多数のファイルの代わりに1つのファイル)に適していますが、非常に遅いです。データベース操作ごとに、zipファイル全体が再編成されます。圧縮されていないtarファイルであっても、コンテンツが変更された場合、継続的な再割り当てが必要であり、zipファイルには余分な計算と再配置が必要です。 圧縮されたままで標準的なものが必要な場合は、OpenXML(odsまたはxlsx、重要ではありません)を使用してデータを保存できますが、データベースの拡張に伴って保存操作が遅く、さらに遅くなります。

+0

私はデータベース内のC#ビルドが私のアプリケーションに最適だと思います。唯一の欠点は、C言語での使用にそれほど容易に変換されないということです。 – Bas

関連する問題