PowerDesigner常用技巧
PowerDesigner是非常强大的数据库设计软件,熟练使用PowerDesigner可以使数据库设计高效而简洁。PowerDesign具体操作在帮助文档(按F1)里面有详细描述,这儿只是列出了常用的操作。PowerDesigner16.5破解汉化包: https://download.csdn.net/download/z645817/11221804
1.如果想详细了解编写VBS脚本在PowerDesign里自定义的一些命令与操作,具体的可以参考 $PWD\PowerDesigner 9\VB Scripts 目录下的脚本示例。
运行VB脚本在 Tools->Execute Commands 里可以进行操作。操作说明在帮助文档里写的很清楚 F1,帮助文档的位置在 Customizing and Extending PowerDesigner > Scripting PowerDesigner > Running Scripts in PowerDesign.
配置统一生成规则
2、修改建表脚本生成规则。如果每个表格都有相同的字段,可以如下修改:
Database -> Edit Current DBMS 展开 Script -> Object -> Table -> Create 见右下的Value值,可以直接修改如下:
/* tablename: %TNAME% */
create table [%QUALIFIER%]%TABLE% (
%TABLDEFN%
ts char() null default convert(char(),getdate(),),
dr smallint null default
)
[%OPTIONS%]
其中的 ts、dr 两列会在生成SQL脚本的时候自动的插入每个表格中,其中的%TNAME% 变量是给每个表格的SQL添加一个该表的Name值注释。
3、修改字段生成规则。要给每个字段都添加一个注释的话,Database -> Edit Current DBMS 中展开 Script -> Object -> Column -> Add 的 Value修改为:
%:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/
其中的%COLNNAME%就是列的Name值(可以是中文)。
4、修改外键命名规则。选择Database —> Edit Current DBMS 选择Scripts -> Objects -> Reference -> ConstName
可以发现右侧的Value为:
FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%
该命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,可以根据这种模式自定义为:
FK_%.U7:CHILD%_RELATIONS_%.U8:PARENT%
可以使FK名称变为FK_TABLE_1_RELATIONS_PARENT_1 掌握这种方法后就可以按照自己的想法修改。
5、生成建库脚本SQL文件中的表头注释很讨厌,可以在 Databse -> Generate Database (Ctrl+G)窗口中,选择Format卡片,去掉Script conventions的 Title 钩选项即可。
6、添加外键:Model -> References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段。
7、在生成代码时不包含drop语句
在菜单Database->Generate Database,选择弹出的窗口中的Options标签页,去掉窗口右边里面的所有Drop选项即可。
8.在生成代码中字段默认值不需要带单引号',如default 'to_char(sysdate,'yyyymmdd')'要改成default to_char(sysdate,'yyyymmdd')
在菜单Database->Edit Current DBMS... ,选择General标签页,在窗口左边选择Script->Quote,然后把窗口右边的Value后面的单引号去掉。
9.去掉生成的建表脚本中对象的双引号
打开PD选择Tools-Model Options-Naming Convention,把右边Name和Code的标签的Charcter case选项设置成Uppercase或者Lowercase,只要不是Mixed Case就行。
10、创建一个表在修改字段的时候,修改name的内容,code也跟着变化,如何让code不随着name变化
Name和Code 的右侧都有一个按钮“=”,如果需要不同步的话,把这个按钮弹起来就可以了,同步直接点击"="。
修改方法:PowerDesign中的选项菜单里修改,在Tool -> General Options->Dialog->Operating modes->Name to Code mirroring,这里默认是让名称和代码同步,去勾选复选框。
11、mysql版本无法生成视图的问题
打开使用MySQL5.0的PDM之后,在菜单里选择Database->Edit Current DBMS..->确认DBMS使用的是MySQL5.0
打开左端树状结构Script->Objects->View -> Create,在右端的Value中写入
create VIEW [%R%?[ if not exists]] %VIEW%
as
%SQL%
选中Drop,在右端的Value中写入
drop table if exists %VIEW%
选中Enable,在右端的Value中选择Yes,确定保存。
注意,此修改只是修改了PowerDesigner程序的设置,只需要配置一次即可;但是它不对PDM文件做改动,没有修改过的PowerDesigner不能生成视图的SQL。
12、建立一个表后,为何检测出现Existence of index的警告
A table should contain at least one column, one index, one key, and one reference.
可以不检查 Existence of index 这项,这条警告不影响建表。警告意思是说没有给表建立索引,而一个表一般至少要有一列、一个索引、一个主键。
13、PDM生成建表脚本时,字段超过15字符就发生错误
解决办法是打开PDM后,会出现Database的菜单栏,进入Database -> Edit Current DBMS ->script->objects->column->maxlen,把value值调大(原为30),比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的 objects照此种方法更改,或者使用下面的这种方法:
●生成建表脚本时会弹出Database generation提示框:把options - check model的小勾给去掉,就是不进行检查(不推荐)
14、如何防止一对一的关系生成两个引用(外键)
要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。在cdm中双击一对一关系->Detail->Dominant role选择支配关系
15、修改mysql表的类型,如由默认的myisam改成innodb
修改单个表的就在表的属性窗口中,选择Physcial Options标签页,双击窗口右边的窗口左边的type=(ISAM),然后在窗口右边下部选择sql,再修改成type=(innodb)
如果修改数据库的类型为innodb类型,打开模型的属性窗口,选择MySQL标签页,在Database type后的编辑框中录入InnoDB即可。再选择菜单database->default physical option,然后在弹出的窗口中左边双击选择type=[ISAM],在窗口右边就出现type=[ISAM],用鼠标点中它,在窗口的下面type后选择innodb,最后点“Apply to...”按钮,选择所有的表即可。
16、从模型直接生成MSSQL数据库表的时候没有附带上注释
PowerDesigner这个工具可以支持任何一种关系型数据库的模型设计,因为在PowerDesigner中每一种数据库模型的特性定义都存储在一个xdb文件中,我们可以在[PowerDesigner_Install_Home]/Resource Files/DBMS下可以找到。当然我们也可以自己创建一个新的xdb,定义好我们想支持的数据库模型的特性。
下面简单地说明一下,使用的是PowerDesinger16企业版。Sybase有些简化版本(如SQL Moduler)就不能自定义xdb,请大家注意。
●从菜单TOOLS->RESOUCES->DBMS,进入自定义数据模型
●PowerDesigner弹出一个对话框,列表框中列出了当前PowerDesigner支持的数据库模型。选择创建一个新的。输入名字SQL SERVER 2010(EXTENDED),选择从现有的SQL SERVER 2010复制,这样SQL SERVER 2010(EXTENDED)就包含了原来SQL SERVER2010模型拥有的所有特征。
●接下来,我们就需要为SQL Server 2010(Extended)添加支持自动生成表和列注释代码的特性。PowerDesinger把定义的特性用树状结构组织了起来,本篇要做的工作就是定义Script代码特征。我们需要修改Script\Objects\Table\TableComment和Script\Objects\Column\ColumnComment中的脚本特征代码。
●SQL Server 2010在数据库中保存表和列注释是通过调用系统存储过程sp_addextendedproperty来做的。那么我们只需要,分别写上
表级的注释代码是:
EXECUTE sp_addextendedproperty N'MS_Description', N'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%', NULL, NULL
列级的注释代码是:
EXECUTE sp_addextendedproperty N'MS_Description', N'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%', N'column', N'%COLUMN%'
%COMMENT%之类的就是相当于替换变量,PowerDesigner在生成脚本的时候自动替换设计模型中替换变量的值。
●保存SQL Server 2010(Extended)成一个xdb文件。
●现在,可以创建一个新的Physical Data Model了,数据库模型选SQL Server 2010(Extended)。建立一个表,需要注意的是,一定要指定一个数据库使用者,一般用dbo。我们可以为表和列都添加上注释。
●生成建库脚本,菜单Databases->Generate Database。注意要选中comment选项。点击确定,就得到最终的建库脚本。打开看看,我们看到了PowerDesinger根据我们告诉它的规则生成了对应的代码
EXECUTE sp_addextendedproperty N'MS_Description', N'雇员信息', N'user', N'dbo', N'table', N'Employee', NULL, NULL
go
EXECUTE sp_addextendedproperty N'MS_Description', N'主键ID,自动增加', N'user', N'dbo', N'table', N'Employee', N'column', N'EmployeeID'
go
●我们在SQL Server 2010中执行这个角本,然后通过Enterprise Manager可以看到这些注释。
17、把NAME 列在 scrip里显示出来
修改字段生成规则。要给每个字段都添加一个注释的话,同一窗口中展开 Script -> Object -> Column -> Add 的 Value修改为:
%:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/
其中的%COLNNAME%就是列的Name值(可以是中文)
18、Identity
PDM里查看表的属性,Columns选项卡,选中整列,查看列属性,点左上方的properties图标(有手形图案的那个),此时打开一个设置窗口,General选项卡里面进行设置,在列属性的General标签页里有个Identity复选框,勾上就行。
19、为sql生成注释,操作如下,用的是PowerDesigner16.5,在其中选择Tools -> Excute commands->Edit/Run Script打开的窗口中添加以下信息,执行run
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch Dim mdl ' the current model ' get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If ' This routine copy name into comment for each table, each column and each view
' of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
'把表明作为表注释,其实不用这么做
tab.comment = tab.name
Dim col ' running column
for each col in tab.columns
'把列name和comment合并为comment
col.comment= col.name
next
end if
next Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
end if
next ' go into the sub-packages
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
20、更换数据库sql语句
选择Database->change current DBMS,在DBMS中选择对应的数据库,如MySQL,点击确定后,然后选择Database---》Generate Database选项,在弹出的窗口中选择生成sql文件的保存路径,点击确定,则可看到生成的sql语言完全是按照MySQL的标准。
21、新建概念模型(conceptual Data Model)
File-->New Model-->Conceptual Data Mode 或者点击工作区,右键-->New Model-->Conceptual Data Mode
22、打开模型时,会有方格线,去除方格线:Tools->Dispaly Preferences->Diagram 去勾选Show page delimiter。
23、生成带注释的sql,Database-->Generate DataBase... 进入弹出框。
在Options页签可以选择要生存脚本的内容(Generate name in enpty comment),可以选择是否创建数据库的脚本,选择要生成脚本的表,文件编码方式
在selection中选择你需要生成sql的模块,指定输出目录等。
PowerDesigner常用技巧的更多相关文章
- 【shell 大系】Linux Shell常用技巧
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...
- oracle存储过程常用技巧
我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集 ...
- Vim 常用技巧:
Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...
- JS~~~ 前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!
前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!2016-09-29 17 ...
- Android ListView 常用技巧
Android ListView 常用技巧 Android TextView 常用技巧 1.使用ViewHolder提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每 ...
- JavaScript常用技巧总结(持续添加中...)
在我学习过程中收集的一些常用技巧: typeof x !== undifined 判断x是否已定义: x === Object(x) 判断x是否为对象: Object.keys(x).length ...
- Eclipse调试常用技巧(转)
Eclipse调试常用技巧 转自http://daimojingdeyu.iteye.com/blog/633824 1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就 ...
- AS技巧合集「常用技巧篇」
转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254723&extra=page%3D2%26filter%3Dautho ...
- iPhone不为人知的功能常用技巧,看完后才发现很多用iPhone的人实在是愧对乔布斯! - imsoft.cnblogs
很多人花了四五千买部苹果,结果只用到四五百块钱的普通手机功能. iPhone不为人知的功能,常用技巧: 网上搜集整理的iPhone快捷键操作,虽然表面上iPhone按键只有一个HOME键,大部分操作都 ...
随机推荐
- JVM 内存设置大小(Xms Xmx PermSize MaxPermSize 区别)
Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) sp ...
- Springboot使用JdbcTemplate RowMapper查询,直接返回实体列表
ManagerRowMapper.java public class ManagerRowMapper implements RowMapper<Manager>{ @Override p ...
- wpf绑定静态变量,模拟rem单位
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; usin ...
- windons共享的一些问题
有时候访问共享一直说无法打开共享,但是别人确实是开了共享. 其中可能如下: 1.首先确定网络没有问题,win+R输入cmd,ping对方IP地址,保证是网络是通的,如果不通,关闭共享电脑的防火墙. 2 ...
- 程序员不可不知的Linux性能工具
前言 在实际开发中,有时候会收到一些服务的监控报警,比如CPU飙高,内存飙高等,这个时候,我们会登录到服务器上进行排查.本篇博客将涵盖这方面的知识:Linux性能工具. 一次线上问题排查模拟 背景:服 ...
- 11.11如何卖到一个亿:从0到1的电商爆品打造术 电子书 PDF
内容转自:https://download.csdn.net/download/chenyao1994/11191034 下载地址:https://pan.baidu.com/s/1uQ1cjm9QH ...
- 模态框(layer)
推荐一个好看的模态框(layer) 地址:http://layer.layui.com/ 相应列子及配置 全部来自于官网,可直接访问官网学习了解. //信息框-例1 layer.alert('见 ...
- 详解proxy_pass、upstream与resolver
详解proxy_pass.upstream与resolver boldcautious 关注 2018.06.04 10:48 字数 1204 阅读 1434评论 0喜欢 2 应用场景 这里列举几个应 ...
- Python 5 运算符
数学运算符: + 加 1 + 1 = 2 - 减 2 - 1 = 1 × 乘 2 × 2 = 4 / 除 3 / 2 = 1.5 不同版本可能显示小数位数不同 ...
- springCloud学习-服务的注册与发现(Eureka)
1.小记 这段时间有空,把springcloud的知识整理一下,好记性不如烂笔头,也让自己对springcloud有个清晰的认识.此次的整理记录主要借鉴了这位大佬的博客 https://blog.cs ...