2

私は持っています:

  • MongoDB データベース
  • NodeJS の REST API
  • Angular JS フロントエンド

次に、データベース スキーマを作成します。そうなる:

ストーリー- ユーザーが説明付きのストーリーを挿入します。

質問- ストーリーとの関連。1 つのストーリーに 100 を超える質問を含めることができます。

回答- 質問に関連します。1 つの質問には 1 つの答えしかありません。

MongoDb ではどのタイプの関係を選択すればよいですか? より速い魂が必要です。例えば:

{
 title: "Story title",
 descr: "Story descr",
 questions: [
              {body: "Question body", user: "User}
            ]
}
4

1 に答える 1

2

ストーリーごとの質問の数は多くなる可能性があり、ストーリーを表示するとき (特にストーリーのリストを表示するとき) にすべての質問を表示する必要はないと仮定すると、1 つのドキュメントに多くのライターがいると多くの複雑さが伴うためです。 、次の単純なスキーマをお勧めします。

stories {
  _id
  title
  description
}

questions {
  _id
  storyId
  user
  body
  answer { ... }
}

ストーリーのすべての質問を見つけるのは簡単です (storyIdインデックスが必要です)。特定の質問のストーリーを見つけるのは簡単です。answer埋め込み可能だと思います。それでも、同時書き込みには注意してください。つまり、誰かが質問を編集し、他の誰かが回答を書いている場合です。これは、単一の埋め込みドキュメントを使用する場合、配列の場合よりもはるかに簡単です。同時書き込みの数は、潜在的に数百ではなく、おそらく最大で 2 です。

少しトリッキーな操作はストーリーの削除で、質問を手動で削除する必要がありますが、それは文字通り 1 回の呼び出しで済みます。

于 2013-10-26T11:36:29.297 に答える