我对这整个 NOSQL 都是新手,最近对 mongoDB 很感兴趣。我正在从头开始创建一个新网站,并决定使用 MONGODB/NORM(用于 C#)作为我唯一的数据库。我一直在阅读很多关于如何正确设计文档模型数据库的内容,并且我认为在大多数情况下我的设计都做得很好。我进入新站点大约 6 个月,我开始看到我需要一遍又一遍地处理的数据复制/同步问题。从我读到的内容来看,这在文档模型中是预期的,并且对于性能来说它是有意义的。IE 将嵌入的对象粘贴到文档中,以便快速阅读 - 无需连接;但当然你不能总是嵌入,所以 mongodb 有一个 DbReference 的概念,它基本上类似于关系数据库中的外键。
所以这里有一个例子:我有用户和事件;两者都有自己的文档,用户参加活动,活动有用户参加者。我决定将包含有限数据的事件列表嵌入到用户对象中。我将用户列表也嵌入到事件对象中作为他们的“参与者”。现在的问题是我必须使用户与也嵌入在事件对象中的用户列表保持同步。当我读到它时,这似乎是首选方法,也是 NOSQL 做事的方式。检索很快,但回退是当我更新主用户文档时,我还需要进入事件对象,可能找到对该用户的所有引用并更新它。
所以我的问题是,这是人们需要处理的一个非常普遍的问题吗?在您开始说“也许 NOSQL 策略不适合我在这里尝试做的事情”之前,这个问题必须发生多少?什么时候不必进行连接的性能优势变成了劣势,因为您很难在嵌入式对象中保持数据同步并对数据库进行多次读取以做到这一点?