我正在组建一个简单的论坛,作为一种将我的脚趾浸入文档数据库的方式 - 认为建模是相对简单的事情。
我很难弄清楚应该如何存储文档。目前使用 RavenDB,但我想其他文档也会类似。数据库。
所以基本上,Forums
每个论坛都有一堆,Threads
每个线程都包含一堆Posts
由Users
.
在我的脑海中,我将其绘制成让每个文件都是不同的文件,主要是因为每个文件都Forum
可能有数千个Threads
,每个Thread
可能有数千个Posts
. 拥有不明显的文件似乎会导致它们随着时间的推移变得庞大?
查看列出所有Posts
我想要显示的Author
名称(没什么大不了的)和Author
帖子数的页面时。这是我卡住的地方。
我可以将Author
名称存储在帖子中,因为它不太可能更改,但是Author
帖子数量会不断变化,因此无法将其存储在Post
.
所以现在如果我要显示一个包含 50 个帖子的页面,我需要执行与 join 等效的关系来获取当前Author
的帖子数。这向我表明我做错了,除非文档数据库不适合这种情况?
编辑
看起来RavenDB 中的Live Projections应该可以很好地处理这个问题,但我仍然想就可能的替代数据库设计发表一些评论。