2010-12-15 15 views
0

まず、NoSQLの概念が初めてです。NoSQLとSQLとの関係の使用

私は基本的にユーザーがdb内にオブジェクトを作成して保存できるようにするためのAPIを開発しています。これは、さまざまなフロントエンドプログラムを通じて行われ、ユーザーごとにプライベートデータを保存するプログラム、データを共有するプログラム、およびデータマイニングによって、多くのユーザーの関連データにアクセスします。ユーザは多くのオブジェクトを持つことができ、オブジェクトが何であるか、アクセス方法に制約を課すことはありません(プログラム間で通信を確実にする責任があります)。

さまざまな権限を持つユーザーのPER OBJECT ACLが重要です。 - ユーザーがファイルを

  • リスト鉱山を尋ねる - ユーザーとして、私は
  • を何を参照することができ

    直接
    • :私はまた、私は想像することができるなどのオブジェクトのタグなど、物事

      様々な検索がある予期しますリストが所有しているもの - 私が作成したオブジェクト

    • listタグが付いているもの - 私がアクセスできる「appX」でタグ付けされているオブジェクト。 そして必然的に多くの他の人がいるでしょう。

    私は考えているシナリオを示すために上記を含みます。現在のところ、スケーラビリティについてはあまり気にしませんが、NoSQLスキーマのフリーコンセプトが好きなので、アプリケーションは私が知らないオブジェクトデータをクエリできます。/user/obj/1/2/3ここで知っているのは、ユーザーがobjを持っていることです。

    しかし、シナリオは私にとって非常に関係があるようです。ユーザーはobj、objにアクセス権があり、アクセス権にはuserとattrsなどがあります。そして、私はRDMSベースでシリアル化されたオブジェクトやjsonデータストアを構築することができますが、NoSQLプロジェクト聞いたことがあり、試してみたい)。

    ので質問:

    • これはNoSQLのための仕事ですか?
    • どうすれば効率的に(MongoDBのを考えていた)オブジェクト間のこのようなリンクを作成し、一般的には(うまくいけばRDMSの観点から)過度のルックアップせずにそのようなことを処理するためのNoSQLのデータをモデル化する方法についてのドキュメント/チュートリアルがあります。私が読んできたことから、私は、上記の事例を本質的にリレーショナルシステムに戻すことなく簡単に許可できるようなデータを格納する方法を見ることができません。
    • コアauthおよびprivlidgesが(わからないどのサブオブジェクト/ユーザ/ OBJ/1/2オブジェクト検索用のキー/ヴァルにオフキーを与えるRDMSで処理されるRDMS /キー-VAL妥協があるはず許可はここで働くだろう)。これがこれまでの答えに違いないでしょうか? :)
    • 他の一般的なアドバイスをいただければ幸いです。宣伝されたfacebookユースケースは、このような関係の質問に答える必要がありますので、NoSQLがそれを行うことができると確信しています - 私はまだそれがより良くできる方法を見ています。長い質問で貼り付ける

    感謝。

  • 答えて

    2

    NOSQL:他のすべて:

    SQL(RDBMS)を(それが発生した場合、そのボーナス)ユーザーの膨大な数が、速度が不可欠であり、実際にデータの整合性を気にしないでください。

    0

    まず第一に、私はあなたの全体の質問に答えるが、私の理解からすることはできません。

    これはあなたの検索の範囲である場合:

    direct - user asks for file 
    list mine - as a user what can i see 
    list owned - what objects have i created 
    list tagged - what objects are tagged with 'appX' that i can access. and there will inevitably be many others 
    

    MongoDBは結構です。何らかの理由でファイルからユーザーに移動する必要がある場合は、SQLを使用します。

    +0

    私は、オブジェクトに影響を与えているものが何であるか知っていなければならない特権を取り消すなどの状況を見ることができます – jumentous

    +1

    @jumentous私の気持ちは、スピードを必要としない限りrdmsを使うべきです。 – Mark