PowerDesigner 画ER图并生成sql 教程

发布时间:2022-07-12 19:34:08 作者:yexindonglai@163.com 阅读(5347)

前言

power designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具,
在数据库建模的过程中,需要运用PowerDesigner进行数据库设计,这个不但可以让人直观的理解模型,而且可以充分的利用数据库技术,优化数据库的设计;

但是有一点,power designer 的用法不适合中国人的习惯;这是非常不好的一点,所以前期需要花一些时间来习惯这个软件的用法;

开始

1、创建项目

首先创建一个项目 ,依次点击 左上角的 File > New Project…

2、给项目起个名

然后会弹出一个窗口, 在里面输入项目名称后点击 OK 按钮

3、项目创建完成

然后,这个项目就创建好了,在左边的菜单栏里面会显示这个项目,并且自动生成了一个文件,在右侧的面板还打开了这个文件;

4、创建物理图 Physical Diagram

接下来我们需要创建一个 Physical Diagram 的物理图, 依次点击左上角的 File > New Model…

5、编辑物理图信息

此时会弹出一个窗口,在窗口中我们依次选择 Model types > Physical Data Model > Physical Digram ; Model name 输入物理图的名称这个随意些就好,DBMS 选择MySQL 5.0,然后点击 OK 按钮

在看看左侧菜单栏,物理图已经创建好了

6、建表

先在右侧的 Physical Diagram 组件栏 中点一下 table 图标,然后在中间空白处点一下,一个表就创建好了;

7、将表放大

刚建好的表格太小了,点击右边 的 Zoom In 放大镜,可以让这个表格大一些

这是放大后的效果

8、修改表结构

先点击 右侧的箭头 pointer, 然后双击这个表

9、给表起个名

此时会弹出一个窗口,在里面输入表名

10、配置字段

点击 Columns ,然后在下面的表格中双击就可以添加字段;

添加好之后,在双击左边的箭头就可以编辑这个字段的信息

此时会打开一个窗口,各主要信息如下

  • Comment : 注释
  • Code:字段名称
  • Indentity: 是否自增字段
  • Primary Key : 是否主键

点击 ok 保存退出,一个字段就创建好了

11 、在添加一个字段 user_name

12、在添加一个订单表 order

订单表的字段如下

13、外键关联

先点一下右边的 Reference 图标,然后移到用户表,按住 鼠标左键 拉到订单表后松开,

然后就可以看到,订单表多了一个外键(fk)字段,这个多出来的外键字段就是 user 表的主键, 而且会有各箭头,表示他们已经建立了关联关系

14、添加索引

双击订单表后切换到 columns 的 tab 页,点击这个很像柜子的图标,会提示 create index 字样,就是创建索引的意思

此时会弹出一个窗口,里面可以填写索引的信息,按需填写就好,包含 :

  • 索引名称
  • 索引注释
  • 索引类型

    切换到columns,可以看到这里已经有一个order_id 的主键了

    我们点击 这个很像表格的按钮(Add Columns)可以选择需要添加索引的字段

    在弹出的窗口中选择需要添加索引的字段即可,可以添加多个,选好后点击ok即可

    然后可以看到,索引已经加好了

    除此之外,我们也可以通过 indexes 的tab页查看或编辑索引,
15、导出sql

依次点击 Database > Change Current DBMS…

将数据库都改为 mysql5.0

然后开始生成sql,依次点击 Database > Generate Database…

在弹出的窗口中选择生成路径和文件名称,其他都默认就好,然后点击确定按钮,即可生成sql

点击确定后会提示你已经生成了,会显示生成的文件路径,点击 Edit… 按钮可以直接查看生成的内容

查看文件后发现,表名里面是带了双引号的,但是有个问题,如果把这个sql直接拿去执行,是会报错的,因为很多的编辑器都不能用双引号

修改,将双引号改为单引号,依次点击 Database > Generate Database… ,然后选择 Format 窗口,在Identifier De;imiter 的选项中,将双引号改为单引号即可

再次生成sql后发现,已经是单引号了

统一添加默认字段(创建时间、创建人等)

使用powerdesigner设计表结构时,每个表都需要设置一些默认字段,如果每添加一个表都要加上 创建时间、创建人、修改时间、修改人 这些字段的话,添加起来会很麻烦,所以就有一些方式可以自动生成这些默认字段。

  1. 打开Powerdesigner工具,依次点击Database -> Edit Current DBMS…。
  2. 在弹出窗口,依次点击Script->Objects->Table->Create。
  3. 在右侧窗口的 Value 中填入以下内容:(如果想要重置,可以create处右键,选择restore value)
  1. create [%Temporary%?temporary ]table[%R%?[ if not exists]] [%QUALIFIER%]%TABLE%[
  2. (
  3. %TABLDEFN%,
  4. create_user bigint comment '创建人',
  5. create_time datetime default CURRENT_TIMESTAMP comment '创建时间',
  6. update_user bigint comment '修改人',
  7. update_time datetime default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '修改时间'
  8. )][%R%?[comment = %.q:TLABL%]]
  9. [%OPTIONS%]

加完后如图

生成表后就会自动加上这些字段了

设置表字符集和存储引擎

在菜单上方选择 Database => Edit Current DBMS

然后选择Mysql5.0 => Script => Objects => Table => Options

在右边的Value框内最后部分追加:

  1. ENGINE = %s : list = BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM, default = InnoDB
  2. DEFAULT CHARACTER SET = %s : list = utf8mb4 | gbk, default = utf8mb4
  • engine :代表存储引擎。
  • default character set :代表的就是字符集了

添加完如图

点击确定保存;

然后回到工作区双击表。选择 Physical Options 标签。然后就可以看到刚刚添加的值了。将字符集和存储引擎添加到右边的窗口中。


然后点击确定进行保存,在次生成sql,就可以看到建表语句中有字符集和存储引擎了

Name 和Code 同步问题

PowerDesigner中,但修改了某个表或者字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名。他俩应该是各不相关的;

16.5及其以前版本

解决方法如下:
1、选择Tools->GeneralOptions…菜单,出现GeneralOptions对话框。
2、从Category中选择Dialog项。
3、取消右边“Name to Code mirroring”复选框。

16.6版本及以上版本

16.6 版本并没有Name To Code mirroring 选项

正确做法

依次打开 tools >> model option… >> Naming Convention 取消 Synchronize code 即可

修改外键连接线为直线

1、依次点击菜单栏的 Tools > Display Preferences…

2、在弹出的窗口种依次点击 Reference > Format > Modify…

3、将Corners中的线改为类似闪电的线即可

4、连接外键后的线就是直线了

关键字数据库