0

考虑一个典型的博客应用程序,其中一个博客可以有很多帖子,而一个帖子可以有很多评论。假设我们想提供一个 RESTfull API 来访问它。

如果我要使用关系数据库来存储这些数据,我会在帖子表中有一个博客的外键,在评论表中有一个帖子的外键。

通过 Mongoose 使用 MongoDB 时,我看到了三种不同的方法来设计集合:

  1. 拥有三个集合:一个用于博客,一个用于帖子,一个用于评论。帖子的架构将有一个引用其博客的字段,而评论的架构将有一个引用其帖子的字段。(非常类似于关系解决方案。)

  2. 同样,三个集合,但每个博客都有一个帖子引用数组,每个帖子都有一个评论引用数组。

  3. 只有一个包含子文档和子子文档的集合,其中博客包含一组帖子,每个帖子包含一组评论。

哪一个是正确的,或者,每一个的优缺点是什么?

4

1 回答 1

1

3个收集方法怎么样,但是

  1. 使用$slice运算符将最后 (N) 条评论复制到 Post 集合中,从而使“最新评论”列表保持简短

  2. $inc帖子中的评论数,从而允许快速检索每个帖子的评论数

  3. 从博客复制或缓存博客信息,或将摘要嵌入到帖子中。

主要带回家:使帖子条目包含您想要一次性渲染的所有内容。

于 2013-04-10T22:06:06.347 回答