我该如何在RavenDB中将这个关系建模为一个文档?

3
我正在使用RavenDB参与我的首个重要项目,并希望征求建议。当前我在领域中有两个概念:演讲者和演示文稿。演讲者可以多次进行演讲,而演示文稿目前只有一个演讲者。在关系型模型中,我会有两个表,但不确定如何选择文档模式。
我想能够显示即将进行的演示文稿,并提供一些有关演讲者的最少信息,同时还要有一个演讲者页面,显示有关他们所有演讲的信息。我想到的方案在这里:
演讲者:https://github.com/ssdnug/Public-Site/blob/master/src/Web/Models/Presenter.cs 演示文稿:https://github.com/ssdnug/Public-Site/blob/master/src/Web/Models/Presentation.cs 请问是否有更好的模式建议?
2个回答

4

您当前的模型是针对最佳性能进行优化的,因为它在两端去规范化引用。一般来说这是好的,但如果标题在任一侧更改,则需要做更多的工作。

如果您可以接受稍微降低一些性能(在大多数情况下,您肯定可以),我宁愿选择.Include()方法。

关于如何处理关系问题,您可以在我的帖子中查看这里的概述:http://daniellang.net/how-to-handle-relations-in-ravendb/


嗨,丹尼尔 - 上面的链接已经无法访问那篇文章了。它还可以找到吗? - Sean Kearon

3

NotMyself,您不需要使用Presenter.Presentations属性。很少有情况下,您需要尝试从Presenter加载演示文稿,并且当您这样做时,您会希望使用分页、排序等功能。

在演示文稿中去规范化Presenter是好的。您永远不需要更新Presenter名称。例如,我以前主要使用Ayende Rahien,现在我改用Oren Eini。旧的演示文稿不需要更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接