使用PowerDesigner整理PDM
由于公司需要,开始学着使用PowerDesigner,实在没法去官网下载,于是在网上找了个16.5版本的。
先介绍一下PowerDesigner,PowerDesigner是一款非常全面的数据库设计工具。使用PowerDesigner可以快速创建表,支持表与表之间建立关系,界面简洁,功能强大。同时支持将sql脚本导出,多种导出类型任意挑选,简单实用。
创建物理模型
打开PowerDesigner,直接开始创建。
如图所示,填写好我们的模型名称并选择对应的数据库类型,这里我是用的MySQL5.0版本。
改一下我们图表的名称就OK了。
开始构建物理模型
点击图中的图标去创建一个表,物理模型最常用的三个是table(表),view(视图),reference(关系),不过本次例子只是一个很简单的,没有用到view。
刚刚新建的表就是这个样子,建好了之后双击它去设置它的属性。
先来设置一下表名和备注,如图所示。
然后设置表里的字段属性,解读一下每一列是什么意思:name(名称)、code(编码)、comment(备注)、default(默认值)、date_type(数据类型)、length(长度)、precision(精确度)、primary(是否主键)、foreign key(是否外键)、mandatory(不允许为空)。图中部分未显示全,比如P、F、M分别就是primary、foreign key、mandatory。
如果发现有些属性在列表中未显示,比如default,我想设置一下字段的默认值,但是刚开始的时候default没在列表中显示,可以点击这个按钮进行设置。
找到default把它勾选上就可以了,其他属性也是一样的操作。
接下来设置我们的索引,输入我们的索引名称和code,然后可以选择索引是什么索引,比如唯一索引,主键,外键,替换键。这里我就不选了,就是一个普通索引。设置好之后点击图中所示按钮去绑定对应的字段。
这里选择一个name就行了,可以发现这里是多选项,如果你的索引是组合索引的话也是没问题的。
所有配置好了之后,可以点击preview预览一下我们的sql。
解决部分选项不存在的问题
通过预览可以看到,大部分内容都有了,但是可能还不完整,比如我想设置一下引擎或者字符集等等。其实是可以在Physical Options中设置的,但是点过去发现里面并没有。这个时候就需要我们自己去添加。
点击图中所示选项
找到table下的options,在value中添加上这一段。这段具体什么意思我就不多说了,不明白的可以点击应用按钮旁边的帮助按钮看看他们的文档。
ENGINE = %s : list = BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM, default = InnoDB
DEFAULT CHARACTER SET = %s : list = utf8 | gbk, default = utf8
COLLATE = %s : list = utf8mb4_general_ci | utf8mb4_bin, default=utf8mb4_general_ci
ROW_FORMAT = %s : list = DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT, default = DYNAMIC
修改好了之后,再去Physical Options中看,它就有了,然后把我需要的设置添加进去就可以了。
为了验证一下,再去sql预览中查看,确认无误。
表与表的关系
在真实的开发中,表与表之间不可能毫无关系,有些甚至很复杂。现在我又创建了一个部门表,具体过程省略,最终在图表中展示如下图所示。然后使用reference去连接两个表。
因为user_info表中的department_id对应着department_info表的主键id,department_id是作为外键的存在,所以应该由user_info连接向department_info。但是连接好了之后会发现,user_info表的id旁除了标注着pk(主键)外,还标注着fk(外键)。那是因为用reference去连接两个表时,PowerDesigner会自动去找两个表同名的字段,但是明显不是我想要的结果,这里可以双击两个表之间的连接线进行修改。
先改一下名称、code和备注。
先选择parent key,这里就一个,已经默认给我选上了,然后在child那边选择对应的字段,这里是department_id,完成后点确定。
OK,可以看到已经更改成功了。
调整颜色
我这里只是一个很简单的例子,所以一眼就能看到我想看到的东西。但是真实情况中,可能图表会非常复杂,想一眼就看到我们关注的东西就没那么简单了,这个时候可将我们关注的东西调整一下颜色,然后它更明显。例如我想关注主键和外键,先点击图中选项。
如图:table->format->modify
找到主键和外键,我这里只设置一下颜色,字体、大小等其他属性就不做修改了。
点击确定后,会弹出一个询问框,直接选全部就行。
最后看看效果,是不是醒目很多。
导出sql
点击图中选项
选择一下导出的路径和文件名称。
找到刚刚导出的sql文件查看里面的内容,确认无误。
补充
在使用PowerDesigner的时候我发现,明明在设置表的字段时已经把那个属性加上了,但是在sql预览的时候它就是没有,就很气。比如我在列中增加了collate属性。
给collate设置上值。
但是在sql里就是没有T_T。
这个时候又需要调整配置了。
找到column下的add,更改一下value里的值。
原本value里的值是这样的:
%20:COLUMN% [%National%?national ]%DATATYPE%[%Unsigned%? unsigned][%ZeroFill%? zerofill][ [.O:[character set][charset]] %CharSet%][.Z:[ %NOTNULL%][%R%?[%PRIMARY%]][%IDENTITY%? auto_increment:[ default %DEFAULT%]][ comment %.q:@OBJTLABL%]]
现在需要往里面加上collate的配置:
%20:COLUMN% [%National%?national ]%DATATYPE%[%Unsigned%? unsigned][%ZeroFill%? zerofill][ [.O:[character set][charset]] %CharSet%][ collate %Collate%][.Z:[ %NOTNULL%][%R%?[%PRIMARY%]][%IDENTITY%? auto_increment:[ default %DEFAULT%]][ comment %.q:@OBJTLABL%]]
OK,搞定收工_!