SQL-多重继承
我有一个“子表”(C)和两个“超级表”(A、B):SQL-多重继承,sql,database,inheritance,modeling,Sql,Database,Inheritance,Modeling,我有一个“子表”(C)和两个“超级表”(A、B): A(id主键) B(id主键) C(id1、id2、C_col) 要进行多重继承,我可以通过创建外键轻松地声明C.id1引用A.id,C.id2引用B.id。但是,由于我的模型(实际上因为A和B也是另一个超级表的继承),id1和id2在一次出现时总是具有相同的值。我的问题是,您认为除了“id1”和“id2”forein键之外,我还需要在C表中创建一个附加的“id”列作为主键吗?更简单的是,我可以任意选择id1或id2列并将其定义为主键吗 我
- A(id主键)
- B(id主键)
- C(id1、id2、C_col)
我不知道我是否很清楚。如果没有,请告诉我您通常如何在SQL中建模多重继承。您不应该任意选择id1或id2列并将其定义为主键。 最好在C表中使用不同的id作为主键。
如果不清楚,希望您清楚。请更新。如果
id1==id2
您为什么一直需要表C?您的问题不清楚。“A和B也是其他超级表的继承”是什么意思?它们是否表示另一个类的重叠子类?你为什么不回答@Barmar的评论问题?你说“C中的主键是不同的id”是什么意思?如何强制C的行要求A和B中都有相应的行?@NicolasCanac本文可能会解释prashant答案背后的原因→