2011-12-25 8 views
0

私はnhibernateを使用しており、tierというテーブルがあります。ユーザーは必要なすべての層をフォームで作成します。これはできますか?それは良いプラチス(同じオブジェクト内にオブジェクトを持つ)ですか?

それは私が「useTierAfter」と呼ばれるフィールドを持っている私のデータベースには、この

Use Teir one up to $600 then use -- 
Use Teir two up to $1000 then use tier1 
Use Tier three up to $1500 then use Tier 1 
Use Tier four up to $2000 then use Tier 2 

ようになります。これは、制限の後に使用するティアのPKを格納します。

ティア2が$ 1000上限に設定されている場合、その金額を上回るものはいずれもティア1を使用します。

私は流暢/ドメインのnhibernateマッピングで、私はプロパティとしてGUIDを持っている必要がありますか、それともTierオブジェクトを持っていなければなりませんか?

public class Tier 
    { 
     public virtual Tier UseTierAfter { get; set; } 
     // or 
     public virtual Guid UseTierAfter { get; set; } 
    } 

これを行うにはどうすればよいか分かりません。

答えて

0

これは実行でき、完全に合理的です。しかし、あなたは同じオブジェクトを含むオブジェクトを持っていません。同じクラスの別のオブジェクトへの参照を含む単なるオブジェクト。

0

あなたは常に外部キーあなたはに関連しているオブジェクトをマップ、およびべきではないなど
だからあなたの例では、あなたは完全に合理的であるTier性質を持っているでしょう。

0

ここで親子関係があると思いますが、これは問題ありません。データベースには、プライマリキーを参照する外部キーを持つ1つのテーブルを持つことができます。あなたのマッピングでは、オブジェクトをマップするだけです。 1対1または多対1参照。

関連する問題