0

我必须在 MongoDB 数据库中对我的数据进行建模。我的数据是帖子和评论,所以我想到的方法有两种:

  1. 1 个状态集合,每个状态都嵌入了评论

  2. 1 个状态集合和 1 个评论集合

考虑到,从用户体验方面来看,用户会看到一个状态列表,而他有时只是要求查看给定状态的评论。还要考虑用户可能要求查看给定用户的评论:如果评论嵌入在状态中,则检索这些信息的成本可能会更高。

您建议哪种解决方案?

谢谢!

4

2 回答 2

0

这取决于评论数量和请求的实际频率。因为如果你会有一些意见,你不应该考虑它。此外,如果您将使用两个集合,查询会更复杂,并且评论集合的大小会比一个集合中的一个选择慢。实际上,非规范化是在 MongoDB 中存储数据的好方法。

于 2013-05-21T08:16:27.637 回答
0

通过查看我认为的解决方案和相关查询,您必须考虑某种查询发生的频率。有一点适用,一种设计不能解决所有问题而不引起一些问题。例如,如果实时查找与状态相关的评论的人越来越多,以查看来自用户的所有评论。我认为在状态中嵌入评论将会有更好的用户体验。如果您可以拥有这种模式,mongodb 允许对子文档进行索引

         Status : " I am good",
         Comments : [{ Comment : "great" , by : "UserOne" } , [{ Comment : "great" , by : "UserOne" }]

您可以索引 Comments.by 因此用户对所有评论的搜索也会很好。在获取状态时,您可以缓存评论并从缓存中获取评论,以改善用户体验。

于 2013-05-21T08:16:42.800 回答