SQL - 多重继承

时间:2014-08-02 05:03:40

标签: sql database inheritance modeling

我有一个“子表”(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中建模多重继承。

1 个答案:

答案 0 :(得分:1)

您不应随意选择id1或id2列并将其定义为PRIMARY KEY。 最好在C表中使用不同的id作为主键。 如果没有请希望它清楚,请更新。