我正在尝试使用 MongoDB、C# 和NoRM来处理一些示例项目,但在这一点上,我很难将我的头脑围绕在数据模型上。用RDBMS的相关数据是没有问题的。然而,在 MongoDB 中,我很难决定如何处理它们。
让我们以 StackOverflow 为例……我完全理解问题页面上的大部分数据都应该包含在一个文档中。标题、问题文本、修订、评论……都在一个文档对象中。
我开始变得模糊的地方是用户数据的问题,如用户名、头像、声誉(变化尤其频繁)......每次用户发生变化时,您是否会非规范化和更新数千条文档记录,或者您是否以某种方式链接数据在一起?
在不导致每次页面加载时发生大量查询的情况下,完成用户关系的最有效方法是什么?我注意到了DbReference<T>
NoRM 中的类型,但还没有找到使用它的好方法。如果我有可以为空的可选关系怎么办?
感谢您的洞察力!