2011-12-25 96 views
0

我正在使用nhibernate並且有一個稱爲層的表。用戶以一種形式製作他們需要的所有層。可以這樣做嗎?這是不是很好(在同一個對象中有一個對象)?

它可能看起來像這樣

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 

在我的數據庫我有一個名爲「useTierAfter」字段。這會在限制之後存儲它應該使用的層的PK。

如果第二層設置爲1000美元,那麼任何超過該金額的金額都將使用第一層金額。

現在我不確定是否在我的流利/域名nhibernate映射應該我只有一個Guid作爲屬性,或者我應該有一個層對象嗎?

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

我不確定什麼是更好的方法來做到這一點。

回答

0

這可以做到,而且是完全合理的。但是你沒有包含同一個對象的對象。只是一個包含對同一類的另一個對象的引用的對象。

0

你應該總是映射你有關的對象,而不是外鍵等
所以在你的榜樣,你將有一個Tier屬性,它是完全合理的。

0

我想你在這裏有一個父母子女關係,這很好。在數據庫中,您可以使用一個外鍵來引用主鍵。在你的映射中只需映射對象。一對多或流利的參考。

相關問題