假设我有抽象类Person
的TPH。然后我从这个类派生了Girl
和Boy
。 Girl
与FavoriteMakeup
没有关联Boy
。插入Makeup
记录时,如何满足Boy
上的FK约束?或者TPH是否与仅限于派生类型的FK不兼容?
TPH:每层的表格
FK:外键
答案 0 :(得分:1)
这里有两个不同的方面。我们来看看它们。
首先,如果外键在Relational DBMS中可以具有或不具有空值。通常,这是允许的:您可以同时具有外键约束和非空约束或外键约束,同时属性可以是可空的。这是因为这两个约束通常被认为是独立的。例如,NULL值可能意味着特定对象的值是未知的。
第二个方面与建模有关:通常,在您的示例情况下,当您可以使用“每个层次结构表”方法时,这不被认为是一个很好的建模实践:您应该使用“每种类型的表”(或TPT使用Microsoft文档的术语)方法,因为所有的Girl实体都与其他实体Makeup有关联,而实体Boy没有这种关联,而这个事实是其中的一部分。实体的意义,而不是某些实体的特殊情况(如未知值)。