PowerDesign高级应用(转)
编写相关的VBS脚本在PowerDesign里自定义一些命令与操作等,具体的可以参考C:\Program Files\Sybase\PowerDesigner 9\VB Scripts目录下的脚本示例。怎么运用这些脚本呢?
在Tools-》Execute Commands里可以进行操作。具体说明在帮助里写的很清楚。帮助的位置在 PowerDesigner General Features Guide-> PART 2. Modeling Guide->CHAPTER 8. Managing Objects->Accessing objects using VBScript->VBScript uses in PowerDesigner
PowerDesign的使用主要是DBMS的配置
1、修改建表脚本生成规则。如果每个表格都有相同的字段,可以如下修改:
Database -> Edit Current DBMS 展开 Script -> Object -> Table -> Create 见右下的Value值,可以直接修改如下:
/* tablename: %TNAME% */
create table [%QUALIFIER%]%TABLE% (
%TABLDEFN%
ts char(19) null default convert(char(19),getdate(),20),
dr smallint null default 0
)
[%OPTIONS%]
其中的 ts、dr 两列会在生成SQL脚本的时候自动的插入每个表格中,其中的%TNAME% 变量是给每个表格的SQL添加一个该表的Name值注释。
2、修改字段生成规则。要给每个字段都添加一个注释的话,同一窗口中展开 Script -> Object -> Column -> Add 的 Value修改为:
%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/
其中的%COLNNAME%就是列的Name值(可以是中文)
3、修改外键命名规则。选择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_%.U7:PARENT%,
可以使FK名称变为FK_TABLE_2_RELATIONS_TABLE_1
掌握这种方法后就可以按照自己的想法修改了
生成建库脚本SQL文件中的表头注释很讨厌,可以在 Databse -> Generate Database (Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。
4、添加外键
Model -> References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段
5、去掉生成的SQL脚本双引号的问题:ORACLE 8I2::Script\Sql\Format\CaseSensitivityUsingQuote改成No,默认是Yes所以会有双引号。
在修改name的时候,code的值将跟着变动,很不方便。修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了。
1.在生成代码时不包含drop语句
在菜单Database->Generate Database,选择弹出的窗口中的Options标签页,去掉窗口右边drop...选项即可。
2.在生成代码中字段默认值不需要带单引号',如default 'to_char(sysdate,'yyyymmdd')'要改成default to_char(sysdate,'yyyymmdd')
在菜单Database->Edit Current DBMS...,选择general标签页,在窗口左边选择Script->Quote,然后把窗口右边的Value后面的单引号去掉。
3.生成的建表脚本中如何把对象的双引号去掉?
打开cdm的情况下,进入Tools-Model Options-Naming Convention,把Name和Code的标签的Charcter case选项设置成Uppercase或者Lowercase,只要不是Mixed Case就行!
或者选择Database->Edit current database->Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”即可!
或者在打开pdm的情况下,进入Tools-Model Options-Naming Convention,把Name和Code的标签的Charcter case选项设置成Uppercase就可以!
4.修改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...”按钮,选择所有的表即可。
5、创建一个表在修改字段的时候,修改name的内容,code也跟着变化,如何让code不随着name变化
Name和Code 的右侧都有一个按钮“=”,如果需要不同步的话,把这个按钮弹起来就可以了。
Tools->General Options->Dialog->Name to Code Mirroring (去掉)
6、由CDM生成PDM时,自动生成的外键的重命名
PDM Generation Options->Detail->FK index names默认是%REFR%_FK,改为FK_%REFRCODE%,其中%REFRCODE%指的就是CDM中Relationship的code!另外自动生成的父字段的规则是PDM Generation Options->Detail->FK column name template中设置的,默认是%.3:PARENT%_%COLUMN%,可以改为Par%COLUMN%表示是父字段!
7、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。
8、建立一个表后,为何检测出现Existence of index的警告
A table should contain at least one column, one index, one key, and one reference.
可以不检查 Existence of index 这项,也就没有这个警告错误了!
意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用管也没有关系!
9、由pdm生成建表脚本时,字段超过15字符就发生错误(oracle)
原因未知,解决办法是打开PDM后,会出现Database的菜单栏,进入Database - Edit Current DBMS -script-objects-column-maxlen,把value值调大(原为30),比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改,或者使用下面的这种方法:
●生成建表脚本时会弹出Database generation提示框:把options - check model的小勾给去掉,就是不进行检查(不推荐)
●可以修改C:Program FilesSybasePowerDesigner Trial 11Resource FilesDBMSoracl9i2.xdb文件.修改好后,再cdm转为pdm时,选择“Copy the DBMS definition in model”把把这个资源文件拷贝到模型中。
10、如何防止一对一的关系生成两个引用(外键)
要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。
在cdm中双击一对一关系->Detail->Dominant role选择支配关系
11、你是否为从模型直接生成MSSQL数据库表的时候没有附带上注释而烦恼呢?
PowerDesigner这个工具可以支持任何一种关系型数据库的模型设计,因为,在PowerDesigner中每一种数据库模型的特性定义都存储在一个xdb文件中,我们可以在[PowerDesigner_Install_Home]/Resource Files/DBMS下可以找到。当然,我们也可以自己创建一个新的xdb,定义好我们想支持的数据库模型的特性。明白了这一点,这个问题的答案就显而易见。
下面我就简单地说明一下,我使用的是PowerDesinger11企业版。Sybase有些简化版本(如SQL Moduler)就不能自定义xdb,请大家注意。
●从菜单TOOLS->RESOUCES->DBMS,进入自定义数据模型
●PowerDesigner弹出一个对话框,列表框中列出了当前PowerDesigner支持的数据库模型。我们选择创建一个新的。输入名字SQL SERVER 2000(EXTENDED),选择从现有的SQL SERVER 2000复制,这样SQL SERVER 2000(EXTENDED)就包含了原来SQL SERVER2000模型拥有的所有特征。
●接下来,我们就需要为SQL Server 2000(Extended)添加支持自动生成表和列注释代码的特性。PowerDesinger把定义的特性用树状结构组织了起来,本篇要做的工作就是定义Script代码特征。我们需要修改Script\Objects\Table\TableComment和Script\Objects\Column\ColumnComment中的脚本特征代码。
●SQL Server 2000在数据库中保存表和列注释是通过调用系统存储过程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 2000(Extended)成一个xdb文件。
●现在,我们可以创建一个新的Physical Data Model了,数据库模型选SQL Server 2000(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 2000中执行这个角本,然后通过Enterprise Manager可以看到这些注释。
12、把NAME 列在 scrip里显示出来
修改字段生成规则。要给每个字段都添加一个注释的话,同一窗口中展开 Script -> Object -> Column -> Add 的 Value修改为:
%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/
其中的%COLNNAME%就是列的Name值(可以是中文)
13、自增长列的设置
PDM里查看表的属性,Columns选项卡,选中整列,查看列属性,点左上方的properties图标(有手形图案的那个),此时打开一个设置窗口,General选项卡里面进行设置.
在列属性的General标签页里有个Identity复选框,勾上就行了
14、
'如果comment为空,则填入name;如果不为空,则保留不变。
'使用方法使用方法
'PowerDesigner->Tools->Execute Commands->Edit/Run Scripts
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim system, file
Set system = CreateObject("Scripting.FileSystemObject")
Dim ForReading, ForWriting, ForAppending '打开文件选项
ForReading = 1 ' 只读
ForWriting = 2 ' 可写
ForAppending = 8 ' 可写并追加
'打开文本文件
Set file = system.OpenTextFile("C:\pdcomment.txt", ForWriting, true)
'判断当前model是否物理数据模型
Dim mdl
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "处理对象无模型"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "当前模型不是物理数据模型"
Else
ProcessFolder mdl,file
End If
file.Close
'******************************************************************************
Private sub ProcessFolder(folder,file)
Dim tab 'running table
for each tab in folder.tables
if not tab.isShortcut then
if trim(tab.comment)="" then
tab.comment = tab.name
end if
Dim col
for each col in tab.columns
if trim(col.comment)="" then
col.comment = col.name
end if
next
end if
next
Dim view
for each view in folder.Views
if not view.isShortcut and trim(view.comment)="" then
view.comment = view.name
end if
next
end sub
文章来自:http://www.cnblogs.com/yangy608/archive/2011/01/21/1941510.html
分享到:
相关推荐
掌握PowerDesigner的高级功能和使用技巧,不仅能够显著提升数据库设计的效率和质量,还能促进团队协作和项目的顺利进行。通过以上介绍的策略,数据库设计师和开发者可以更加灵活地应对各种复杂场景,实现数据模型的...
综上所述,"PowerDesigner导出报告模板"涉及到利用PowerDesigner的高级功能定制和管理报告,以适应不同项目需求。通过掌握这些技巧,可以显著提升数据库设计和管理的效率,确保项目的顺利进行。
### PowerDesigner技术在大型网络数据库中的应用 #### 引言 在现代信息技术领域,大型网络数据库...对于那些希望在复杂网络环境中高效构建和管理数据库系统的开发者来说,掌握PowerDesigner的使用技巧是必不可少的。
掌握PowerDesigner的高级用法和技巧,可以帮助开发者高效地进行数据库设计、UML建模、业务流程分析等多方面工作,实现从概念设计到最终部署的全流程管理。PowerDesigner的工具箱和模型转换功能,能够让用户在各个...
在本教程中,我们将深入探讨PowerDesigner的核心功能和使用技巧。 一、PowerDesigner简介 PowerDesigner由Sybase公司开发,它支持多种数据库管理系统,如Oracle、MySQL、SQL Server等。通过PowerDesigner,用户...
#### 四、PowerDesigner 15.1 使用技巧 1. **数据模型创建**: - **概念数据模型(CDM)**:用于描述业务实体及其关系。 - **物理数据模型(PDM)**:基于 CDM,细化到具体的数据库表结构设计。 2. **数据库生成...
### PowerDesigner反向工程使用方法详解 #### 一、引言 在软件开发过程中,数据库设计与维护是一项重要的任务。PowerDesigner作为一款强大的数据库建模工具,被广泛应用于概念数据模型(CDM)、物理数据模型(PDM)以及...
在"PowerDesigner教程(下)"中,我们将深入探讨其核心特性和使用技巧。 首先,PowerDesigner的UML(统一建模语言)设计功能是其一大亮点。UML是一种标准化的建模语言,用于软件工程中可视化、构建和文档化系统的...
本学习资料主要聚焦于PowerDesigner的使用,旨在帮助用户掌握这款软件的核心功能和应用技巧。 1. PowerDesigner简介: PowerDesigner是一款由SAP公司开发的高级数据建模工具,它提供了全面的数据建模、业务流程建模...
通过本教程,你将掌握PowerDesigner的基本操作和高级技巧,能够独立完成从需求分析到数据库设计的全过程。无论你是数据库新手还是经验丰富的开发者,都能从中受益,提升数据库设计和管理的能力。
9. **工具使用技巧**:包含快捷键、自定义设置、版本控制集成等高级功能的使用,提升用户的操作体验。 此外,压缩包内的`readme.txt`文件可能包含关于教程的使用说明、版权信息或者作者的额外提示。而`IT知道网 ...
这份“PowerDesigner建模资料整理”集合了多种资源,旨在帮助用户全面了解并掌握PowerDesigner的使用技巧。 1. **PowerDesigner教程.chm** 这个CHM文件可能包含PowerDesigner的基础到高级操作教程,涵盖了概念模型...
**PowerDesigner使用教程(2)**则可能深入到高级特性和实用技巧,如性能分析、数据库脚本生成、数据流建模(Data Flow Diagram, DFD)以及元数据交换(Metadata Exchange, MEX)。这些特性让PowerDesigner能够更好地...
- 即使使用了高级的设计工具,也需要具备一定的数据库理论知识,例如理解关系数据库的基本概念和范式等。 - 设计高质量的数据库不仅仅是工具的问题,更关键的是设计者对于数据结构和业务流程的理解。 **3. ...
**正文** PowerDesigner是一款强大的数据建模工具,广泛应用于IT...通过深入学习和实践其中的案例,不仅可以掌握数据库设计的基本原理,还能了解如何根据实际需求灵活应用各种设计技巧,提升数据库设计的专业技能。