2012-02-27 7 views
3

私はRavenDBの最初の深刻なプロジェクトに取り組んでおり、提案を求めています。私は現在、自分のドメイン「プレゼンターとプレゼンテーション」に2つの概念を持っています。プレゼンターは何度も発表することができ、プレゼンテーションには現在1人のプレゼンターがいます。リレーショナルモデルでは2つのテーブルがありますが、ドキュメントスキーマを選択する方法がわかりません。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

現在のモデルは、両端の参照を非正規化するため、究極のパフォーマンスに最適化されています。一般的にはこれはいいですが、どちらの側でもタイトルが変わったときにはもっと多くの作業をする必要があります。

パフォーマンスが若干低い場合(ほとんどの場合、確かに)、私はむしろ.Include()のアプローチを採用したいと考えています。あなたはこの関係-事に対処する必要があるオプションは、私のポストでここを見て何についての一般的な概要については

http://daniellang.net/how-to-handle-relations-in-ravendb/

+0

こんにちはダニエル - 上記のリンクはもう終了しません。それはまだ入手可能ですか? –

3

NotMyself、 あなたがPresenter.Presentationsプロパティを必要としません。プレゼンターからプレゼンテーションを読み込もうとすることはほとんどありません。そうした場合は、ページングや並べ替えなどでプレゼンテーションを行う必要があります。

プレゼンテーションでプレゼンターを正規化解除するのは良いです。今まで発表者の名前を更新する必要はありません。 たとえば、私は以前はAyende Rahienとして主に行っていましたが、今はOren Einiとして行っています。しかし、古いプレゼンテーションは変更する必要はありません。

関連する問題