2012-02-27 56 views
3

我的工作与我的RavenDB第一次严重的项目,并希望听取建议。我目前在我的域中有两个概念,Presenters和Presentations。演示者可以呈现多次,而演示文稿目前有一个演示者。在关系模型中,我会有两个表,但不知道如何选择文档模式。如何为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

任何人有一个更好的模式建议?

回答

4

您当前的模型是最终的性能进行了优化,因为它denormalizes两端的引用。一般来说,这是很好的,但是当标题在任何一方发生变化时,都需要花费更多的工作量。

如果你的生活能力稍差(在大多数情况下,你肯定是可以是)我宁愿去使用.Include()的方法。

有关你有什么方案来解决这一关系,事情的概述,下面就来看看我的帖子:http://daniellang.net/how-to-handle-relations-in-ravendb/

+0

喜丹尼尔 - 上面不再链接到达该文章。这还能用吗? – 2016-07-24 06:52:29

3

NotMyself, 你不需要Presenter.Presentations财产。如果有的话,你很少会尝试从演示者那里加载演示文稿,而当你这样做时,你需要使用分页,排序等方式进行演示。

德正常化演示演示文稿中的好。您不需要更新演讲者姓名。 比如,我以前主要流向为Ayende Rahien,现在我去当奥伦埃尼。不过,旧的演示文稿不需要改变。