PowerDesigner个人使用总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/attack_breast/article/details/85779828

前言

文章内容均已16版本为说明。

创建项目

这里File下面有2个菜单:new model与new project。

New project的作用类似于文件夹,负责把有关联关系的文件集中归类存放。

New model的作用类似于普通的一个文件,该文件可以单独存放也可以归类存放,看个人使用吧。

创建模型

创建方式有2种,一种是通过左边的workspace来创建:

还有一种方式就是通过File菜单来创建:

Physical Data Model

PDM(物理数据模型),通俗来讲就是在PowerDesigner中以图形化的方式来展示、设计数据库。既然来展示、设计数据库那PDM就要涉及到数据库的基本概念,包括:

表、列、视图、主键、侯选建、外键、存储过程、触发器、索引、完整性检查约束。

选中PDM文件,然后鼠标右击选择new,在弹出的列表中可以看到数据库的基本概念,根据个人需求进行创建。

导入SQL脚本从而生成PDM

1.点击左上角:File->Reverse Engineer->Database
reverse:形容词是相反/动词是逆转、颠倒/名词是背面。
engineer:名词是工程师、技师/动词是策划、制造、策动。

2.在弹出框中:Model name填写要生成的PDM名称,DBMS则填写数据库类型,也就是导出SQL文件时的原始数据库类型,点击“确定”按钮,打开下一个窗口。

3.由于我们是通过SQL脚本来逆向生成PDM,因此我们选择的是“Using script files”,然后点击下面的添加文件小图标(带有黄色加号的图标),如图所示:

4.在选择文件对话框中,找到要导入的SQL脚本,点击“打开”,这时会将该SQL文件添加到列表中,最后点击“确定”按钮,即可在左侧“workspace”窗口中看到对应的PMD。

设置主键自增(基于MySQL)

1.首先把identity显示出来。双击表,打开“Table Properties”,点击“columns”,点击图标“Customize Columns and Filter”打开对话窗口

2.在打开的窗口中,选中“identity”,点击“确定”按钮。

3.然后在“columns”中,能看到“identity”列,然后选中该列

4.然后点击“Physical Options”,选中“auto_increment=(%d)”,把该参数移动到右侧,然后在右侧下部设置起始值

5.最后点击“preview”来预览效果。

导出SQL文件

  1. 选中要导出SQL文件的物理模型。
  2. 点击Database->Generate Database。(generate动词是产生、生成;形容词是发生的)

按照下面提示框进行填写:

这里如果勾选Check mode,很容易报下面错误:

3. 点击应用、确定按钮后,打开所生成的SQL文件

中文乱码

还是同样的步骤,然后在弹出框中选择format选项卡

Incorrect table definition

create table XXXX(

   ID int not null auto_increment comment '序号'

)auto_increment = 1;

alter table XXXX comment '测试表';

alter table XXXX add primary key (ID);

这是我导出的SQL文件的内容,其中的ID是主键、自增,但我在Navicat中执行的时候报错,错误信息如下:

Incorrect table definition;there can be only one auto column and it must be defined as a key.

字面意思是自增列必须是主键,问题是我把主键的定义挪到了create table的外面,所以报错了,解决方法如下:

Invalid default value for 列名字

在create table XXXX中有一列是这样定义的:

createtime timestamp default null comment ‘创建日期’,

updatetime timestamp default null comment ‘更新日期’

然后客户端工具Navicat报错:

Invalid default value for ‘createtime’

Invalid default value for ‘updatetime’

解决方案:问了问其他同事,他们在实施的时候也是遇到这个问题,就把timestamp的默认值设置为current_timestamp。

第一步:双击table,在打开的窗口中点击columns。找到要设置默认值的timestamp列,点击属性,如图:

第二步:点击standard checks,在这个选项卡里设置default值。

Cannot add foreign key constraint

使用Navicat时系统报错:cannot add foreign key constraint,分析原因在于create table语句中把主键约束、外键约束一起定义了,这就导致了如果create table的时候必须把其他表先创建完毕才行,截图如下:

解决方法:主键约束放在create table里面,而外键约束放在SQL文件的末尾,即尾部。

  1. 选中物理模型,点击Database->generate Database
  2. 在options中,在左侧列表中选中foreign key,然后在右侧框中选中Outside,点击确定即可。然后打开生成的SQL文件的最后,即可发现所有的外键约束全部在SQL文件尾部统一创建。

连接MySQL数据库

  1. Database->Configure Data Connections

2.点击Connection Profiles选项卡,点击新增按钮

3.点击:test connection测试连接性。

4.然后在目录下能看到.dcp文件

猜你喜欢

转载自blog.csdn.net/attack_breast/article/details/85779828