PD 15.1 安装 破解 , 简单使用 (一对多,多对多关系生成sql脚本) , CDM 和 PDM 的区别;PD15.1 生成sql2008 无FK外键约束的解决方法
CDM是概念模型,在概念模型上没有具体数据库产品的概念,反映的是实体和联系。PDM是物理模型,是依赖具体数据库产品的模型,比如可以指定具体的数据类型和约束等等。在PowerDesigner中两个模型之间可以相互转化。
步骤一般当然是先cdm后pdm,建好cdm后,根据实际情况,选择不同的数据库,然后把cdm转成相应的pdm,有了cdm会更加灵活,不必在需求分析一开始就定死用什么数据库,便于更改,转pdm很容易。
物理数据模型(PDM): 你可以把这个看中是实际数据库中的表结构,例如 你的CDM中有 多对多的关系的话,那么就会在 PDM中,实际生成中间表

1:运行 PowerDesigner15_Evaluation.exe
默认


2: 安装完毕后,不要执行,下面我们进行 破解
把 PowerDesigner15汉化+注册补丁 下的所有文件,覆盖 PD的安装目录下的文件
然后我们打开 PD,点击 帮助 –> About 看到下面窗口中红色方框,就表示已经破解 + 汉化成功


================ PDM 挖坑开始 这里有个坑,建议直接跳过,从下面的 CDM 设计开始看=========
下面我们来简单的创建几个表,涉及 1对多,多对多(自己写中间表),多对多(PD帮我们生成中间表)



我们创建几个表
Userinfo 用户表
Order 订单表
Department 部门表
Play 活动表

设置主键,自动增长 (双击列,打开列设置窗口,勾选右下角的 Identity 自动增长)

分析用户表 和 订单表的 关系 是一对多



下面,我们来看 用户表 和 部门表 他们是一个多对多的关系,我们通过手动创建的中间表来 设计这个 中间表
(一个员工,可以在多个部门,一个部门,也可以有 多个员工)
注意,下面的这个中间表,是我们自己手动创建的


上面一个用户和一个部门之间,是多对多的关系,但是上面是我们自己创建一个中间表,下面我们自己来创建一个 真正的 多对多的 表(实际还是会自动创建一个中间表)
到这里,我突然发现我用错了, 应该是先设计 CDM ,在 CDM 里面才可以设计 多对多表,而 如果是在 PDM 里面,是不能生成 多对多表的
因为PDM是物理模型,那么PDM中反应的表,就应该是 CDM
====================== PDM 挖坑结束 ======================
========================= 重新用 CDM 开始 =============================

在 CDM 模型里面,拉一对多关系,是从 一 拉 到 多,就形成了下面的这个图. 并且这里有点和 PDM不同的是,在CDM里面拉的关系线,是看不到外键的,外键要等一会 转成了 PDM 模型之后,才会看到外键

下面我们把 用户表,部门表,以及手动创建的中间表(用户部门关系表) 这3个表,来拉一下关系
首先 用户表 和 用户部门 是 一对多的关系,一个用户,可以属于多个部门
部门表 和 用户部门关系表 也是一对多的关系,一个部门里面,可以用多个用户
实际上,2个一对多,就是一个多对多,我们原本可以省掉 用户部门关系表而直接在 用户表 和 部门表 直接拉一个 多对多的关系,但是假如想在中间表里面加入其他额外的字段,例如 这里是 JoinTime 加入部门时间,就是我们自己想额外创建的字段,那么这个时候,就应该自己手动来创建中间表了


下面我们来创建,活动表和部门表是多对多的关系 (一个活动,可以属于多个部门,一个部门也有多个活动)

在CDM里面画 多对多的线的时候,要注意,PD里面,默认是没有 多对多 的线的,得先把2张表之间 拉出 一对多, 然后双击 两个表中间的关系线, 再修改成 多对多
好了,我们的CDM 模型,就画好了

我们双击 部门表 和 活动表 中间的 关系的名称,我们把这个名称 Relationshop_4 给修改成 R_Department_Play ,这个名称,就是等会我们生成的 数据库里面的中间表的名称 ,如果你不修改,那么等会数据库就会生成一个 Relationshop_4 ,这个名称 太傻了


(如果2张表,是多对多的关系,那么什么时候,用我们自己创建的中间表,什么时候,用系统的多对多表呢? 其实很简单,如果 你需要在中间表里面放一些额外的数据,例如上面的 加入时间(JoinTime) 这个就是个额外的字段,那么我们就用自己创建的中间表. 如果什么额外的字段都没有,就可以直接用 系统的多对多 (但是实际到了PDM物理模型,和到数据库的时候,还是会生成一个中间表的)
现在我们要生成数据库的话,还要先 转成 PDM 模型 ,我们可以点击 工具=> Generate PDM 生成PDM模型,也可以使用快捷键 Ctrl + G



点击确定后,我们会跳转到 PDM 界面,这个 物理模型界面,就是实际上,我们通过 CDM 最后会生成的哪些表

这个时候,我们 选择 数据库 => Generate Database 来生成数据库, 快捷键依然是 Ctrl + G


然后我们把生成的sql文件,拖到sql2008的管理器里面,我们自己先创建一个数据库 例如 WebPd
我们发现,表结构,定义,都可以了

但是我们发现还是有个小问题,我们观察在PDM中的时候, R_Deparment_Play 这张中间表的 DepId 和 PlayId 不仅仅是有PK主键,同时他们还是外键,但是到了sql2008里面之后,外键信息丢失了,如下图,解决方法是我们要回到 PD 里面,对PD这个软件进行设置

解决方法,
步骤1: 在刚才的PDM 界面下(注意,是PDM),点击 菜单栏的 数据库=> Change Current DBMS 设置为 sql2000


步骤2: 在菜单栏里面 找到 模型=>References

在打开的窗口中,我们找到 Implementation 这列, 默认这里的数据是 Trigger ,我们修改成 Declarative

步骤3 : 将当前PDM的 DBMS 重新设置为 sql2008


步骤4: 在PDM 界面下, 按 Ctrl + G 快捷键,生成sql脚本 ,然后放到 sql2008 数据库管理器中运行后,如下

CDM和PDM的区别?(转)http://hi.baidu.com/t_sky/item/adaded4f5a6b11ea1e19bcd6
PD 15.1 安装 破解 , 简单使用 (一对多,多对多关系生成sql脚本) , CDM 和 PDM 的区别;PD15.1 生成sql2008 无FK外键约束的解决方法的更多相关文章
- MySQL数据库 crud语句 ifnull() 创建新账户 备份数据库 一对多关系 多对多(中间表) 外键约束 自关联 子查询注意事项 DML DDL DQL mysql面试题 truncate与delete的区别
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ...
- SSAS中事实表中的数据如果因为一对多或多对多关系复制了多份,在维度上聚合的时候还是只算一份
SSAS事实表中的数据,有时候会因为一对多或多对多关系发生复制变成多份,如下图所示: 图1 我们可以从上面图片中看到,在这个例子中,有三个事实表Fact_People_Money(此表用字段Money ...
- JPA实体关系映射:@ManyToMany多对多关系、@OneToMany@ManyToOne一对多多对一关系和@OneToOne的深度实例解析
JPA实体关系映射:@ManyToMany多对多关系.@OneToMany@ManyToOne一对多多对一关系和@OneToOne的深度实例解析 今天程序中遇到的错误一 org.hibernate.A ...
- Hibernate框架学习(六)——一对多&多对一关系
一.关系表达 1.表中的表达 2.实体中的表达 3.orm元数据中的表达 一对多:(在Customer.hbm.xml中添加) 多对一:(在LinkMan.hbm.xml中添加) 最后别忘了在hibe ...
- SQLAlchemy_定义(一对一/一对多/多对多)关系
目录 Basic Relationship Patterns One To Many One To One Many To Many Basic Relationship Patterns 基本关系模 ...
- hibernate 一对多 多对一 关系表 增删改查大礼包ps二级查也有
今天来到混元气功 这货大概的意思就是你中有我 我中有你 ps 这里就要说到维护关系 ps写这个用了我一下午.......也是刚刚好复习到这里 顺便就写写 注意:一般都在多方维护关系,至于是用单向还是用 ...
- hibernate中一对多多对一关系设计的理解
1.单向多对一和双向多对一的区别? 只需要从一方获取另一方的数据时 就使用单向关联双方都需要获取对方数据时 就使用双向关系 部门--人员 使用人员时如果只需要获取对应部门信息(user.getdept ...
- 关于在安装MySQL时报错"本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止"的解决方法
首先将你下载的MySQL安装或者解压(对应安装版和解压版),下载地址http://dev.mysql.com/downloads/mysql/ 然后复制你安装目录中的my-default.ini,更改 ...
- PD生成SQL脚本附带注释命令
'------------------------------------------------------------''脚本功能:' PowerDesigner中批量根据对象的name生成com ...
随机推荐
- Docker 入门 --- 命令总结
Docker命令总结 前言 命令来自于官网的get-started教程,放在这里自用 part-1 ## List Docker CLI commands docker docker containe ...
- FIDDLER的使用方法及技巧总结(连载三)FIDDLER使用技巧及方法
(接上篇!~~~~) 三.FIDDLER使用技巧及方法 1.AutoResponder选项卡的使用 Fiddler的AutoResponder 选项卡允许你使用本地硬盘的文件来作为返回内容,而不是把请 ...
- 【机器学习】主成分分析PCA(Principal components analysis)
1. 问题 真实的训练数据总是存在各种各样的问题: 1. 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余. 2. 拿到 ...
- Android Studio preview 不显示,程序运行正常
答案来自 stack flow 修改: res -> values -> style.xml style name="AppTheme" parent="Ba ...
- 真机调试报错error ==Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接。"
真机调试报错error ==Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接." 请注意,错误代码是-1009,网上关于 ...
- 基于HTML5手机登录注册表单代码
分享一款基于HTML5手机登录注册表单代码.这是一款鼠标点击注册登录按钮弹出表单,适合移动端使用.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&qu ...
- EntityFramework Model有外键时,Json提示循环引用 解决方法
正文之前先说两句,距离上篇博客已将近两个月,这方面的学习和探索并没有停止,而是前进道路上遇上了各种各样的问题,需要不断的整理.反思和优化,这段时间的成果,将在最近陆续整理发出来. 个人感觉国内心态太浮 ...
- Linux 下Tomcat服务器响应越来越慢分分析
本文转自自:https://www.cnblogs.com/yangc/p/6859985.html ,感谢给我提供提供思路. 服务器响应慢的分析与解决(Linux服务器) 一.分析思路 1.排除本机 ...
- Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally如何使用尽可能少的标注数据来训练一个效果有潜力的分类器
作者:AI研习社链接:https://www.zhihu.com/question/57523080/answer/236301363来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- 【机器学习】 Matlab 2015a 自带机器学习算法汇总
MATLAB机器学习没看到啥教程,只有一系列函数,只好记录下: MATLAB每个机器学习方法都有很多种方式实现,并可进行高级配置(比如训练决策树时设置的各种参数) ,这里由于篇幅的限制,不再详细描述. ...