我试图找出如何最好地实现这个为我的系统…让我的头脱离现在的RDBMS空间…
我当前的一部分DB有三个表:Show,ShowEntry和Entry. ShowEntry是Show和Entry之间的多对多连接表.在我的RDBMS中,认为这是相当合乎逻辑的,因为显示详细信息的任何更改都可以在一个地方完成,并且与Entry相同.
在基于文档的存储中反映出最好的方法是什么?我相信没有一种方法可以做到这一点,但我不禁想到,如果基于文档的存储完全适用于这种情况.
我正在考虑实施RavenDB.而关于一般Nosql设计的讨论将会更好,一个更重要的RavenDB将会是太棒了!
谢谢,
D.
当在文档数据库中建立多对多关系时,通常只需在其中一个文档中存储外键集合.您选择的文档很大程度上取决于您打算跨越关系的方向.遍历它的一种方式是微不足道的,以其他方式遍历它需要一个索引.
原文链接:https://www.f2er.com/nosql/203329.html拿起购物篮的例子.更确切地知道特定篮子中哪些项目比哪个篮子包含特定项目.由于我们通常是按照篮子到项目的方向进行关系,因此将项目ID存储在一个篮子中比在项目中存储篮子ID更有意义.
您仍然可以通过使用索引在相反方向上遍历关系(例如,查找包含特定项目的篮子),但索引将在后台更新,因此不会总是100%准确. (您可以等待索引使用WaitForNonStaleResults进行准确,但这种延迟将显示在您的UI中.)
如果双向要求立即100%的准确性,您可以在两个文档中存储外键,但是每当创建或销毁关系时,应用程序将不得不更新两个文档.