在项目开发中,需要明白 PowerDesigner 类继承关系,先行设计数据库常使用PowerDesigner这个工具软件,一般先分析业务系统中的模型对象(可以理解为面象对象中的类【Class】)设计为CDM,即概念数据模型(Conceptual Data Model,CDM)。所以,我们可以建立继承关系,类似面象对象中的继承关系,最终在转换成PDM时,生成数据库表时,会将父对象(CDM)映射成子表的属性,但是,怎么做呢?
怎样建立CDM?
在设计数据库中,需要明白CDM,PDM之间的关系,如果你实在理解不了的话,可以将CDM理解为面象对象中的类,而PDM则就是数据库表的设计(和特定数据库无关)。
在 PowerDesigner 中如何建立CDM呢?操作很简单,打开PowerDesigner,按如下图所示操作即可:
CDM类继承关系
先明白一下CDM中的继承实现方式:
- Concrete Table Inheritance(具体表继承)
- Single Table Inheritance(单表继承)
- Class Table Inheritance (类表继承)
通常CDM采用实体-联系图(Entity-Relation Graph,E-R图)来表示(“实体”和“联系”的概念)。目前,E-R图示CDM最流行的一种表达方式。
比如,下面的图示中,定义了基础对象,业务基础对象,基础对象是整个数据库表中,都必须拥有的字段(属性),而业务基础对象是指所有的业务模块,即最终和业务相关的表都拥有的属性(字段)。
怎样建立继承关系?
设计好父模型后,如上图中绿色基础对象所示,有两个对象,分别是:班级对象,业务基础对象 直接从基础对象继承,它们之间的带 Inheritance 文字的连接就表示是继承关系。可以在工具栏里面直接拖过来。如下图所示:
是否生成父对象的PDM(表)
建立继承关系时,需要注意的是,如果你要将【基础对象】映射到数据库成为一张表的话,需要通过双击 带 Inheritance 文字 设置Generation,其中有两个选项,分别是生成父对象,生成子对象(Children),在生成子对象里面还有2个选项,表示继承所有属性,只继承主键,不同的勾选方式会在映射成PDM时(即生成数据库表)有一点区别。如下图所示:
怎样生成PDM?即映射成数据库表
PDM就是最终的数据库模型设计,当然只里和最终数据库体现是一致的,你可以选择生成SQL Server或者Mysql,又或者 Oracle的模型,看你项目中使用的是什么数据库。
操作方式是直接按快捷键:Ctrl+G键,弹出如下图所示:
可以在上面设置数据库,选择生成哪些模型等等。可以自行研究下,这里很简单。接下来点击确定即可,如果出错会有这个提示,根据提示解决了即可。
下面是已经生成的PDM,或者表,是有父对象的,如下图所示:
子对象入学考试包含了基础对象和业务对象的属性,如下图所示:
不生成基础对象,只需要设置下继承关系即可,如下图所示:
再一次生成的效果,就是我们期望的最终数据库表了,如下图所示:
合理使用继承关系,可以让设计数据库更方便,让子模型更加的关注业务属性,避免每个模型都去复制相同的属性,还有可能复制遗漏。
演示CDM文件下载: CDM 设计文件下载 (下载0 )