类别集合的最佳设计
Posted
技术标签:
【中文标题】类别集合的最佳设计【英文标题】:Best design for Category Collection 【发布时间】:2020-06-23 17:39:22 【问题描述】:我正在开发一个博客网站(练习 ReactJS)。 在我的网站中,我有一个滑动条将显示类别和每个类别中的帖子数量。 那么,我应该如何设计分类集合呢?
-
有一个名为 numPosts 的字段来存储该类别中的帖子总数。
每当我创建新的帖子文档时,我必须增加 numPost
字段。
不要将帖子总数存储在类别集合中。每次我想
获取帖子数量,我必须浏览帖子集合和计数。
有没有最适合这种情况的设计? 预先感谢您的帮助! 对不起我的英语。
【问题讨论】:
【参考方案1】:这更好地计算帖子(通过 count 或 $count)而不是创建“numPosts”字段, 不要像关系数据库那样行事,以下模式对于您想要做的事情来说是一个很好的选择:
"_id" : ObjectId("5e60df95d7ff5f38b4d44d8c"),
"nameOfCategory": "Coronavirus",
"postsInsideThisCategory: [
"titleOfPost": "Is there any cure?",
"description": "Bla Bla Bla Bla..... and Bla"
,
"titleOfPost": "What is the type of coronavirus?",
"description": "Bla Bla Bla Bla..... and Bla"
]
然后只需使用count
或$count
来统计“postsInsideThisCategory”字段数组中的文档数。
【讨论】:
因此,只需创建一个集合类别而不是 2 个(类别和帖子)。每当我创建新帖子时,我会将其附加到“postInsideThisCategory”字段中。对吗? 是的,没错,在这个架构中,您将为每个类别创建一个独立的文档,并将帖子附加到相关类别的“postsInsideThisCategory”字段中。 我认为这样会使我的架构非常大。只有少数文档属于 Collection 类别(每个集合一个),但每个文档又大又长。以上是关于类别集合的最佳设计的主要内容,如果未能解决你的问题,请参考以下文章