我正在使用nhibernate并且有一个名为tiers的表。用户可以在表格中填写所需的所有层级。
看起来像这样
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作为属性还是我应该有一个Tier对象?
public class Tier
{
public virtual Tier UseTierAfter { get; set; }
// or
public virtual Guid UseTierAfter { get; set; }
}
我不确定什么是更好的方法。
答案 0 :(得分:0)
这可以做到,而且非常合理。但是你没有包含相同对象的对象。只是一个包含对同一类的另一个对象的引用的对象。
答案 1 :(得分:0)
您应始终映射与之相关的对象,而不是外键等。
因此,在您的示例中,您将拥有Tier
属性,这非常合理。
答案 2 :(得分:0)
我认为你在这里有一个父母的孩子关系,这很好。在数据库中,您可以使用一个带有外键的表来引用主键。在映射中只映射对象。一对多或精通参考文献。