以下是该方案。
STUDENT,FACULTY是PERSON实体的子类,它们具有专门的属性。
通常,我们将公共属性存储在PERSON表中(p_id作为pk)并且存储专用于子类。我们通过在子类中创建一个列,使用p_id将子类映射到超类。
然而,做以下事情是可以接受的。
而不是p_id作为子类中的映射属性,我们可以使用属于超类的其他东西,它是唯一的但不是pk 。
注意:EER图(概念设计)仍然保持不变!
答案 0 :(得分:2)
它只是一个外键,即使对于超类型/子类型模式也是如此。您可以引用任何声明为UNIQUE的列。
我很困,所以我不确定这会如何影响可更新的视图。不过,我认为这不会影响他们。 (假设你正在使用它们。有些人不打扰。)