2010-11-23 5 views
0

NHibernateの設定では、リスティングエンティティがあります。 DBのパフォーマンス上の理由から、データベースを複数のテーブルに分割する必要があります(サイトの設定方法は、一度に複数の国で検索することはできません)。だから、Listing_US、Listing_FRなど複数のテーブル間でNHibernateエンティティの行ストレージを分割する

二つの質問、二よりも第1はるかに重要:

  1. NHibernateのが私のためにこのマッピングを行うことができますどのような方法がありますか?おそらく、それはGet()(私が国コードで渡すか、またはそれを主キーに統合するだろう)で生成され、Save()で読み取られる内部フィールドに基づいているでしょう。

  2. スキーマにも含まれていて、DBスキーマ全体を最初から作成するときにエクスポート可能なのでしょうか?

編集:私は、これが選択をしようとすると大混乱になることを理解しました。明らかに、私は毎回すべてのテーブルを照会したくないので(パフォーマンス上のメリットが損なわれます)、私はある種のList_XXエンティティを持つ必要がありますが、おそらく一般的なリストから継承することができますか?私はそれがXMLマッピングにどのように役立つかはわかりません。

答えて

0

あなたは(http://sourceforge.net/projects/nhcontrib/でソース)NHibernateの破片を試すことができます

+0

ありがとう - 私は見ましたが、それは非常に成熟していないようですか?いずれにしても、Fluent NHibernateと継承を使用して私の問題を解決することができました:http://stackoverflow.com/questions/4259403/fluent-nhibernate-classmap-inheritance/4259628#4259628 – Alastair

0

あなたのDBがそれらをサポートしている場合は、パーティションテーブルを使用する方がよいかもしれません(あなたが使用しているからDBどの言いませんでした)。パーティション化された列の値を常に問い合せるだけで、面倒なことなく複数のテーブルのすべてのパフォーマンス上の利点を得ることができます。

関連する問題