目录
安装
E-R图 & CDM & PDM
E-R图 | 实体联系模型 | |
CDM | 概念模型 | 只表示数据库的逻辑结构(用自身的方式描述E-R图) |
PDM | 物理模型 | 考虑数据库的物理实现,包括软件和数据存储结构 (只有PDM才可以转化出sql语句) |
想要SQL的话,可以不建CDM直接建PDM。虽然我觉得CDM转PDM也挺方便的
CDM绘制
1. 在顶部导航栏—>文件—>建立新模型 (information->Conceptual Data)
使用到的三个工具:移动,添加实体,添加联系
Entity实体
1.设置表名
注意!code部分要用英文英文英文
2.添加列
在添加列时,只要关注当前实体自身的属性。
如有添加外键的需要,在添加两个实体的关系后生成PDM时会自动生成外键。
现在添加的列code不能和已经添加的列code重名。
3.删除列
Relationship 关系
注意!选择一对多后在生成PDM时,会将一对多对应多的这方的实体的主键作为外键加入一对多对应的一的这方中
多对多则是会在PDM中形成新的表
举例一对多:
举例多对多:
CDM转化为PDM
1. 工具(我用的汉化版有两个工具,不要惊讶)——>Generate Physical Data Model...
2.根据需要选择数据库类型,以及新建/更新到PDM
3.选择选项(可以全部使用默认)
options
Check Model | 功能可帮助我们找出、改正设计模型中的错误和疏漏 |
save generation dependencies | 是否为每个模型的对象保存对象识别标签,主要用于合并由相同CDM生成的两个PDM。 |
convert names into codes | 选中则用名字作为实体类代码里的名称,否则就用表中code作为名称 |
rebuild triggers | 重建触发器 |
reference (参照)
对修改update和删除delete约束:
None | 父表修改,子表不影响 |
Restrict | 父表修改,如果子表存在,则出错 |
Cascade | 父表修改,如果子表存在,则相应的修改 |
Set Null | 父表修改,如果子表存在,则相应置空 |
Set Default | 父表修改,如果子表存在,则相应置默认值 |
FK column name template (FK命名模版)
由CDM生成PDM时自动生成的重命名
always use template | 始终使用模板 |
only use template in case confict | 仅在发生冲突时使用模版 |
4.选择需要生成的表
PDM外键
双击关系,进行查看
可以直接查看两个表的字段
如果是由CDM生成PDM,那么外键是通过Relationship生成的,也可以通过工具栏中的Reference来实现两表之间的外键关系。同一用户可以进行多次预约,用户信息和预约信息是一对多的关系,通过用户表的主键学号来进行连接,如果预约表中没有学号列,会在预约表中创建学号列并创建该列上的外键引用;如果已经存在学号列,则只添加外键引用,不再添加列。
生成SQL
1.数据库(D)—>Generate Database...(要打开PDM文件CDM文件下没有数据库(D)选项)
选择保存路径
保存成功
使用SQL
我是直接打开MySQL把生成的SQL文件复制进去运行了
注意!要先进入目标数据库
主要参考们:
从PowerDesigner概念设计模型(CDM)中的3种实体关系说起_powerdesigner 实体关系图_sKy_zHe的博客-CSDN博客
PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)_hy_zzzzz的博客-CSDN博客
PowerDesigner参照(Reference)_ytuwlg的博客-CSDN博客