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