powerdesigner 类的继承关系

在开发中,总是会面对部分相同的实体类这种情况的。那么,我们需要在powerdesigner 中就直接关联好这种关系。但是,怎么做呢?

实现方式:

  1. Concrete Table Inheritance(具体表继承)
  2. Single Table Inheritance(单表继承)
  3. Class Table Inheritance (类表继承)

比如,教师与学生的设计关系来讲。有相同的姓名,性别,年龄等等一系列的相同属性。也有不同的属性,教师的工作,学生的学号等等。那么,我们创建一个继承的关系表。如图:

powerdesigner 类的继承关系

接下来就是设置继承关系,生成相应的表了。

1.具体表继承:

顾名思义,就是不建立父表,只创建子表。每个子表中继承于父表中的属性。如图:

powerdesigner 类的继承关系

怎么创建呢:在继承关系上,设置Generation面板下的Generation mode 。

  • 取消勾选 :生成父类 generation parent 
  • 勾选: 生成子类 generation children
  • 单选: 生成所有字段 inherit all attributes

2.单表继承:

单表继承就是既然有相同字段,那么就把这些字段放到同一张表中,减少了区分到底那张表的数据。直接在一张表中操作。

powerdesigner 类的继承关系

操作:

  • 勾选: 生成父类 generation parent
  • 取消勾选: 生成子类 generation children

3.类表继承:

按照类表进行创建,父表子表都创建。在子表中设置该子表的主键为父表的外键。在PowerDesigner 中,对于继承节点的属性,允许生成父表和子表。

powerdesigner 类的继承关系

操作:

  • 勾选:生成父类 generation parent
  • 勾选:生成子类 generation children
  • 单选:inheria only primary attributes

最后发现,student 写错了。