2011-08-20 11 views
2

これは面倒な問題ではありません - 一般的な文書dbsに関する別の設計上の質問 です。文書db - 非正規化された参照 - ベストプラクティス

私はかなり標準化されたリファレンスを使用していましたが、多くの場所でこれはDDDを難しくしているのが私にはたったの でした。

だから、例えば私が子供のコレクションを持つオブジェクトを持っていると言う:

List<DenormalizedReference<SomeType>> 

親が でList<SomeOtherType>

今受諾オーバーロードされたコンストラクタをインスタンス化されたときに、コレクションが作成されたこの子 - 私はSomeOtherType コレクションからこのリストを作成したいと思います。つまり、SomeOtherTypeごとに新しい SomeTypeを作成する必要があります。私のドメインにDocumentSessionに渡さず

- 親ARを保存するとき、我々はIDと名前

を除き、それぞれの子オブジェクトのプロパティを失う ので、この文句を言わない仕事を - 私はどうするつもり ありませんよ

他の誰もこれをどのように処理していますか?

答えて

4

これはできません。 あるいは、そうしてはいけません。

これを解決するにはいくつかの方法がありますが、通常は静的ゲートウェイを使用してセッションを取得しますが、この方法では遅延ロードされたコレクションが作成されるという問題があります。

RavenDBは、このような問題を避けるために特別に設計されています。また、サーバーに戻るのを避けるためにアイテムを含めることもできますが、そのようなIDとタイプ間を移動することは避けてください。

+0

私が必要とするものを達成するための最良の方法は、Includesを使用することです。私はRavenDbを実際に使用していないと考えています。それは、いくつかのリレーショナルコンセプトにこだわることで可能性があります。より大きいドメインのための完全なddd/cqrsルートを少なくとも行くとき、本当の価値が達成されます。あなたはそれに同意しますか? – iwayneo

+0

はい&いいえ。 これは本当にあなたが持っているenvの種類と使い方によって異なります。 &idsは参照の問題を解決する方法の1つで、非正規化された参照は別のものです。彼らは、我々がやっていることと、私たちが物事を使う方法 –

関連する問題