当您通过数据库模型中的类表继承关系对继承进行建模时,您是否...
1)包括一个属性(两个子提示的布尔值,更多子提示的字符串),它标识每条记录的特定子提示?
2) 将此标识作为外键包含到包含所有可能子类型描述的表中?
3)以上都不是,并且依赖于子表中的“反复试验”查找需要几次?
当您通过数据库模型中的类表继承关系对继承进行建模时,您是否...
1)包括一个属性(两个子提示的布尔值,更多子提示的字符串),它标识每条记录的特定子提示?
2) 将此标识作为外键包含到包含所有可能子类型描述的表中?
3)以上都不是,并且依赖于子表中的“反复试验”查找需要几次?
在大多数情况下,我更喜欢每个类层次结构模型的表,其中一列是鉴别器列(您 1. 解决方案)。如果由于需要许多子类型而确实需要第二个表,那么也许您应该将表分成几个表,因为我怀疑很多数据将是多余的,并且是空的。
每个子类模型还有一个表,其中您有一个包含共享数据的主表和子类的子表(数据完全规范化),尽管使用这种数据更难,除非可能使用像 NHibernate 这样的 ORM 工具。
您能否提供您正在解决的情况的具体示例,因为在这些情况下,子类的数量通常是预先知道的(例如 BillingDetails -> CreditCard、BankAccount 等...)