2011-05-18 17 views
0

ファイルカタログシステムを構築する予定です。 iTunesが音楽のために行うのと非常によく似た処理を行いますが、他の種類のファイルでのみ処理します。ファイルカタログシステムの構築に使用するデータベース

明確にするために、アプリケーションはファイルのコレクションを持ち、ファイルに関するメタデータをデータベースに格納します。音楽に関しては、その特定の曲に関係するすべてのアーティスト、およびその曲がリリースされたアルバムなどを記憶する。

ファイルおよび関連するメタデータの収集を容易にするために、私はデータベースの使用を検討しています。

私はこのプログラムをデータベース、Qt4、良いC++コーディングの実習としてC++/Qt4を使って書く予定です。

このようなタスクでは、どのデータベースシステムをお勧めしますか。ここに私が使用すると考えているものがあります。他に何か提案してください。将来的にはおそらく

  1. MongoDBの
  2. CouchDBの
  3. SQLiteの
  4. などのRedisやRAIK
  5. としてタプルストア

アプリケーションは、複数のユーザーが同時にデータにアクセスするものに成長しますあるユーザが別のユーザによって導入された変更を上書きしないようにするためのメカニズムは便利です(私はgitの紛争解決と同様のことを考えています)。

題名を編集しました。

+0

これは主観的に閉ざされていると思われる理由を誰かが広げるとすれば、私はその質問を編集してそれほど大したものではないことをうれしく思います。 –

答えて

1

MongoとCouchはNoSQLですが、SQLiteはリレーショナルソリューションです。私はそのような仕事のためにあなたはCouchとMongoのような文書DBを使う方が良いと思います。

RavenDBを見たことがありますか?すぐに妥協の解決を含むドキュメントDB、Map/Reduceクエリ、およびフルテキスト検索エンジン。これは.NETで書かれていますが、C++で非常に簡単に行うことができるHTTPリクエストを介してアクセスできます。

+0

NoSQLがこのアプリケーションのより良いオプションになる理由を詳しく説明しますか? –

+0

私はRavenDBを調べましたが、それは素晴らしいソリューションかもしれませんが、それは.NETに依存しています。私はクロスプラットフォームのソリューションを探していますので、このプロジェクトで使用するのは躊躇します。 –

+0

今日、スキーマレスのデータベースを実行しているので、エンティティをテーブルや行に強制的に移動させることは意味がありません。私はもう少し詳しく、ここで別の文脈でhttp://www.code972.com/blog/2011/05/sisodb-the-wrong-solution-to-the-wrong-problems/を書きました。 RavenDBはMono上で動作することができます。 – synhershko

関連する問題