当前位置 : 主页 > 网页制作 > Nodejs >

node.js – mongoDB处理1-n n-n关系的最佳实践是什么?

来源:互联网 收集:自由互联 发布时间:2021-06-16
在关系数据库中,1-n n-n关系表示2个或更多表. 但是在mongoDB中,因为可以将这些东西直接存储到一个模型中,如下所示: Article{ content: String, uid: String, comments:[Comment]} 我对如何管理这些关系
在关系数据库中,1-n n-n关系表示2个或更多表.
但是在mongoDB中,因为可以将这些东西直接存储到一个模型中,如下所示:

Article{
  content: String, 
  uid: String,
  comments:[Comment]
}

我对如何管理这些关系感到困惑.例如,在article-comments模型中,我应该直接将所有注释存储到文章模型中,然后每次将整个文章对象读出到JSON中吗?但如果评论变得非常大,该怎么办?就像文章对象中有1000条评论一样,这样的策略会不会使GET过程每次都很慢?

我绝不是这方面的专家,但我以前也经历过类似的情况.

从我见过的几个演示中你应该直接存储所有评论.这将给你最好的表现(除非你期待一些荒谬的评论).这样,您就拥有了文档中的所有内容.

将来如果事情开始变得很好并且你注意到事情变得更慢,你可以做一些事情.您可以查看存储最新(插入任意数量)的注释,并参考其他注释的存储位置,然后将旧注释映射到“存储桶”以保持加载时间快.

但最初我将它存储在一个文档中.

所以会有一个看起来像这样的模型:

Article{    
    content: String, 
    uid: String,
    comments:[
        {"comment":"hi", "user":"jack"},
        {"comment":"hi", "user":"jack"},
    ]
    "oldCommentsIdentifier":12345
}

然后只有你的注释字符串中移出了注释才会填充oldCommentsIdentifier,但是我真的不会这样做少于1000条评论甚至更多.这里需要进行一些测试才能看到“甜蜜”的位置.

网友评论