3

私はNoSQL(私の場合はCouchDB)を使い始めたばかりで、新しいドキュメントの作成と既存のドキュメントへのデータの追加に関する一般的な方法について、簡単な質問であると私が信じていることに答えられないようです。

現在、ユーザーごとにデータベースがあります(つまり、ユーザーが所有するデータにのみアクセスできるようにすることができます)。

したがって、トップレベルでは、私のCouchDBは次のようになります。

  • UserA_db
  • UserB_db

単純なノートブックアプリケーションがあり、各ユーザーが1つ以上のノートブックを持ち、それぞれに1つ以上のノートが含まれているとします。

次のように、ノートブックごとに1つのドキュメントを追加するという考えです。

  • UsersA_db
    • NoteBook1_doc = {notes:[{notebody:'foo'}、{notebody:'bar'}]}
    • NoteBook2_doc = {notes:[{notebody:'baz'}、{notebody:'boo'}]}

または、ドキュメント何であるか、何が含まれているのか、何に関連しているのかに関係なく、すべてが完全にフラットであると想定されていますか?

  • UsersA_db
    • NoteBook1_doc = {id:1}
    • Note1_doc {id:1、parentBook:1、notebody:'foo'}
    • Note2_doc {id:2、parentBook:1、notebody:'bar'}
    • SomethingCompletelyDifferent_doc {id:1、text:'すべての牛は草を食べる'}
    • AccountInformation_doc {名前:'ボブ'、年齢:34}
4

1 に答える 1

2

これはどちらの方向にも進む可能性がありますが、覚えておくと便利な事実は、ドキュメントはCouchDBのアトミックトランザクションの単位であるということです。すべてのデータが1つのドキュメント内にある場合は、CouchDBのデータにアトミックなトランザクション変更を加えます。

また、CouchDBビューは、完全に一貫した状態でさまざまな方法でデータを表示できるため、「ビュー」と呼ばれることを思い出してください。ビューは常に、要求した時点のデータの特定の時点のスナップショットを表します。ビューはデータをまとめることもできます。ビューでは、たとえば、個々のメモを照合してノートブックを表示できます。

Joachimはこれが判断の呼びかけであるというのは正しいですが、個人的には2番目の選択肢に傾倒します。すべてのメモは文書です。

于 2012-04-27T06:04:54.420 に答える