博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PowerDesigner中CDM和PDM如何定义外键关系
阅读量:6188 次
发布时间:2019-06-21

本文共 1130 字,大约阅读时间需要 3 分钟。

有A、B两张表(实体),各自有id作为主键,两表是一一对应关系。但略有不同:

A表一条记录可以对应0或1条B表记录,B表一条记录必须对应唯一条A表记录。

这样的关系如何在CDM或PDM中定义?

在最后的表结构中,B表中需要自动生成A表id列作为外键。

在PDM中,这种关系叫“引用”,实现比较简单

1、如果B表中没有外键列,则直接使用工具reference,B表中自动生成外键列,如下图:

2、如果B表中已经有列和A中主键列相同,则直接使用工具reference,使用B表已有列作为外键列,如下图: 
 
3、 如果B表中已经有列和A中主键列不相同,则直接使用工具reference,B表自动生成外键列
(1)一种方法是删除已有列,修改外键列名,如下图:    
(2)第二种方法是,双击reference连接线(属性),选择外键列,选择确定即可
 
在CDM中,通过关系(Relationship)中的DomainRole来实现
1、选择面板上的关系图标,先后连接两个实体(顺序无所谓),生成关系,如下图:
2、双击连线,编辑关系,先在Gneral中更改关系名称,表明两表关系
3、选择“Cardinalities”,定义两表主从关系
A、选择“One-One”关系,此时Domain Role选项自动激活。
B、Domain Role概念非常重要,它定义谁是主表,谁是从表,主表ID将进入从表形成外键字段。
如果不选择,两张表的主键将互相进入对方形成外键,所以必须设置Domain从主表到从表,如下图:
C、Dependent(依赖)关系
其次,判断Dependent(依赖)关系,如果B表dependent于A表,则A的主键进入B表做为外键后,此外键再与B表原主键形成新主键。
也就是说,B表原主键并不能形成完整主键,只有加上A表主键(外键)后才能共同形成主键。
如果上面设置主从表关系,则主表dependent选择自动禁用。
如果在从表上勾选dependent,则主表主键在从表中将会显示为(fk,pk),且从表数量关系自动变为(1,1)如下图:
所以不能轻易勾选dependent选择
 
cdm图:
 
生成的pdm图:
D、Mandatroy(强制属性)
A表到B表如果是Mandatroy,说明A表中任何一条记录都要对应B表一条记录,也就是说,如果A表中有B表的外键列,则该外键列不能为空。(1,1)关系
如果不为Mandatroy,就可以是(0,1)对应关系。
E、Cardinality(数量关系)
定义从A到B表或从B到A表是一对一、一对多、多对多关系中的那种。

转载于:https://www.cnblogs.com/mol1995/p/6159672.html

你可能感兴趣的文章
linux调整home分区和root分区大小
查看>>
Exchange用户更改密码后,手机用户使用旧密码仍然可以接收邮件
查看>>
84.快速栏桌面没有了运行
查看>>
一个response.cookies引用
查看>>
java中的相对路径和绝对路径
查看>>
C/C++语言extern使用方法总结
查看>>
【云快讯】之四十八《IBM和Cisco最新收购,加强Openstack易用能力》
查看>>
Java NIO系列教程(十一) Pipe
查看>>
Virtual Studio 2015发布利器:通过IDE直接发布容器化ASP.NET 5 到云中
查看>>
MySQL学习笔记(1)
查看>>
JDK下载与安装
查看>>
Spring mvc 笔记 @Controller @ModelAttribute @SessionAttributes @ControllerAdvice
查看>>
CentOS下mysql数据库常用命令总结
查看>>
如何在CentOS 7上安装jtomcat8.5服务器
查看>>
CPU三级缓存有什么用 二级缓存和三级缓存的区别
查看>>
我的友情链接
查看>>
许式伟:二十年的演进,互联网的下个时代是什么?
查看>>
快速获得服务器基本信息(debian centos)shell脚本
查看>>
Linux查找命令和文件的绝对路径
查看>>
Android4.0 input事件输入流程详解(中间层到应用层)
查看>>