【发布时间】:2014-08-02 05:03:39
【问题描述】:
我有一个“子表”(C)和两个“超表”(A,B):
- A (id PRIMARY KEY)
- B (id PRIMARY KEY)
- C (id1 , id2, c_col)
为了进行多重继承,我可以通过创建 FOREIGN KEY 轻松声明 C.id1 引用 A.id 和 C.id2 引用 B.id。但是,由于我的模型(实际上因为 A 和 B 也是另一个超级表的继承),id1 和 id2 将始终具有相同的值一次出现。我的问题是,您认为除了“id1”和“id2”外键之外,我还需要在 C 表中创建一个附加的“id”列作为 PRIMARY KEY 吗?更容易的是,我可以随意选择 id1 或 id2 列并将其定义为 PRIMARY KEY 吗?
我不知道我是否很清楚。如果没有,请告诉我您通常如何在 SQL 中建模多重继承。
【问题讨论】:
-
id1 == id2一直都需要表 C 吗? -
您的问题不清楚。 “A和B也是另一个超级表的继承”是什么意思?它们是否代表另一个类的重叠子类?为什么不回复@Barmar 的评论问题?
标签: sql database inheritance modeling