站点图标 江湖人士

CDM类继承关系5分钟搞懂PowerDesigner概念模型

CDM类继承关系

CDM类继承关系

在项目开发中,需要明白 PowerDesigner 类继承关系,先行设计数据库常使用PowerDesigner这个工具软件,一般先分析业务系统中的模型对象(可以理解为面象对象中的类【Class】)设计为CDM,即概念数据模型(Conceptual Data Model,CDM)。所以,我们可以建立继承关系,类似面象对象中的继承关系,最终在转换成PDM时,生成数据库表时,会将父对象(CDM)映射成子表的属性,但是,怎么做呢?

怎样建立CDM?

在设计数据库中,需要明白CDM,PDM之间的关系,如果你实在理解不了的话,可以将CDM理解为面象对象中的类,而PDM则就是数据库表的设计(和特定数据库无关)。

在 PowerDesigner 中如何建立CDM呢?操作很简单,打开PowerDesigner,按如下图所示操作即可:

怎样建立CDM

CDM类继承关系

先明白一下CDM中的继承实现方式:

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

通常CDM采用实体-联系图(Entity-Relation Graph,E-R图)来表示(“实体”和“联系”的概念)。目前,E-R图示CDM最流行的一种表达方式。

E-R图示

比如,下面的图示中,定义了基础对象,业务基础对象,基础对象是整个数据库表中,都必须拥有的字段(属性),而业务基础对象是指所有的业务模块,即最终和业务相关的表都拥有的属性(字段)。

怎样建立继承关系?

设计好父模型后,如上图中绿色基础对象所示,有两个对象,分别是:班级对象,业务基础对象 直接从基础对象继承,它们之间的带 Inheritance 文字的连接就表示是继承关系。可以在工具栏里面直接拖过来。如下图所示:

继承关系

是否生成父对象的PDM(表)

建立继承关系时,需要注意的是,如果你要将【基础对象】映射到数据库成为一张表的话,需要通过双击 带 Inheritance 文字 设置Generation,其中有两个选项,分别是生成父对象,生成子对象(Children),在生成子对象里面还有2个选项,表示继承所有属性,只继承主键,不同的勾选方式会在映射成PDM时(即生成数据库表)有一点区别。如下图所示:

CDM类继承关系5分钟搞懂PowerDesigner概念模型 12

怎样生成PDM?即映射成数据库表

PDM就是最终的数据库模型设计,当然只里和最终数据库体现是一致的,你可以选择生成SQL Server或者Mysql,又或者 Oracle的模型,看你项目中使用的是什么数据库。

操作方式是直接按快捷键:Ctrl+G键,弹出如下图所示:

可以在上面设置数据库,选择生成哪些模型等等。可以自行研究下,这里很简单。接下来点击确定即可,如果出错会有这个提示,根据提示解决了即可。

生成PDM出错

下面是已经生成的PDM,或者表,是有父对象的,如下图所示:

子对象入学考试包含了基础对象和业务对象的属性,如下图所示:

不生成基础对象,只需要设置下继承关系即可,如下图所示:

再一次生成的效果,就是我们期望的最终数据库表了,如下图所示:

合理使用继承关系,可以让设计数据库更方便,让子模型更加的关注业务属性,避免每个模型都去复制相同的属性,还有可能复制遗漏。

演示CDM文件下载: CDM 设计文件下载 (下载0 )

退出移动版