前言
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设计表结构时,每个表都需要设置一些默认字段,如果每添加一个表都要加上 创建时间、创建人、修改时间、修改人 这些字段的话,添加起来会很麻烦,所以就有一些方式可以自动生成这些默认字段。
- 打开Powerdesigner工具,依次点击Database -> Edit Current DBMS…。
- 在弹出窗口,依次点击Script->Objects->Table->Create。
- 在右侧窗口的 Value 中填入以下内容:(如果想要重置,可以create处右键,选择restore value)
create [%Temporary%?temporary ]table[%R%?[ if not exists]] [%QUALIFIER%]%TABLE%[
(
%TABLDEFN%,
create_user bigint comment '创建人',
create_time datetime default CURRENT_TIMESTAMP comment '创建时间',
update_user bigint comment '修改人',
update_time datetime default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '修改时间'
)][%R%?[comment = %.q:TLABL%]]
[%OPTIONS%]
加完后如图
生成表后就会自动加上这些字段了
设置表字符集和存储引擎
在菜单上方选择 Database => Edit Current DBMS
然后选择Mysql5.0 => Script => Objects => Table => Options
在右边的Value框内最后部分追加:
ENGINE = %s : list = BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM, default = InnoDB
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、连接外键后的线就是直线了