问题的结构 - 答案集合

时间:2013-08-29 21:34:24

标签: mongodb database-design database

我不熟悉MongoDB,我的问题很简短。问题的最佳结构是什么 - 答案集合。我应该分开到不同的集合,还是将答案保留为问题的属性?为了给你更多细节:

  1. 每个问题可以有很多答案
  2. 我不需要在Answers中搜索
  3. 我会搜索问题
  4. 每个答案都有userIdvotes,当然还有answer属性
  5. 找到问题后,我将能够扩展答案列表并投票给答案
  6. 问题也可以投票
  7. 它将类似于stackoverflow,但更简单。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我会将它们保存在两个独立的集合中。正如您所说,您必须能够在问题集中进行查询以便进行问题收集,您只需要显示针对特定选定问题的答案,但是会像您提到的某些特定字段一样投票。例如,如果我们考虑stackoverflow,您会看到问题:点击问题 - >然后你可以查询答案集合以找到与该问题相关的答案,也可以找到答案,你可以有评论,如果你不期望疯狂,他们中的大部分可以与答案一起保存在列表中。你可以保留问题的答案带有引用和问题ID索引的集合。

像他的那样:

的问题:

{
    "_id" : ObjectId("52205df3d6c893638bc2aa14"),
    "q" : "What is hip?",
    "v" : 1000
}

答案:

{
    "_id" : ObjectId("52205e72d6c893638bc2aa15"),
    "q_id" : ObjectId("52205df3d6c893638bc2aa14"),
    "a" : "Tell me, tell me!",
       "u" : "uid",
    "v" : 153,
    "c" : [
        {
            "c" : "Cool",
            "u" : "uid",
            "v" : 100
        }
    ]
}