数据库表继承

时间:2011-12-01 23:43:55

标签: sql database-design inheritance


表是否可以继承多对子表? (我认为这就是措辞的意思:P)换句话说:

 PersonBase can be PersonA and/or PersonD and/or PersonC

但是在这种特殊情况下, PersonBase 需要多次作为 PersonD 存在(有原因),我可以这样做吗?或者我应该创建另一个表 TableD ,以便 PersonBase PersonD ,它与 TableD 。但是我希望能够这样做,以便 PersonBase 可以是多个 PersonDs ,如果可能的话。

全部谢谢

P.S。如果我的问题看起来很幼稚,我道歉。

2 个答案:

答案 0 :(得分:4)

postgresql具有与OOP类似的实际表继承。基表列由“子表”继承,它甚至支持多个基类。

答案 1 :(得分:0)

我认为你在第一种情况下描述的PersonBase(超类型)和PersonAPersonC(子类型)之间的关系是1:1关系(超类型/子类型) ,在第二种情况下,在PersonBasePersonD之间,是1:n关系。