2012-04-03 6 views
0

私はかなり大きなクラス階層を持っていますが、階層ごとにテーブルを使用したいのですが、ちょっと変わっています。私の階層は次のようになります:階層ごとに流暢なNHibernate自動マッピングテーブル:階層を分割できますか?

Event --> [specific_events] --> Transaction --> [specific_transactions] 

この階層を2つのテーブル、イベントとトランザクションに分割したいと思います。しかし、すべてのトランザクションはイベントであり、NHibernateは階層全体をイベントテーブルに入れようとします。

イベントとトランザクションの間で階層を分割する方法を教えてください。

編集:私は階層が少し間違っています。すべてのspecific_eventsはEventから派生し、すべてのトランザクションはspecific_eventsではなくEventから派生します。

Event --> [specific_events] 
Event --> Transaction --> [specific_transactions] 
+0

これは本当に意味をなさない。あなたは、「階層ごとのテーブル」アプローチを使用したいと言ってきました。しかし、同じ階層に属するEventとTransactionを別々のテーブルに入れたいと思っています。 –

+0

私はこのことについて少しは分かりません "この階層をイベントとトランザクションの2つのテーブルに分割したいと思いますが、すべてのトランザクションはイベントで、NHibernateは階層全体をイベントテーブル。 しかし、すべてのイベントを1つのテーブルに入れ、すべてのトランザクションを別のテーブルに入れることはできますが、各トランザクションごとにイベントテーブルにエントリがあります。 –

答えて

0

私が知る限り、それはできません。なぜあなたは2つの異なるテーブルにそれらを分割したいですか?

また、NHibernate in Actionの書籍で階層マッピングのさまざまな戦略について非常に良い説明があります。それは私をたくさん助けました。

+0

私はそれらを分割したい唯一の理由は、それぞれの約30があり、簡単にするためにそれらを分離させることはちょうどいいと思うからです。 – Brian

+0

マッピング戦略の選択は、パフォーマンスに大きな影響を与えます。階層を異なる表にマップすると、多相問合せ(基本クラスのすべてのインスタンスを問合せ)が遅く実行されます。したがって、マッピング戦略を選択する際には、一般的なクエリ、望ましいパフォーマンスなどを考慮する必要があります – Nikolay

関連する問題