PowerDesigner设置集锦

来源:互联网 发布:c语言函数调用 编辑:程序博客网 时间:2024/06/06 15:09

powerdesiner的自增长列
 
  1.如果dbms是MsSql,则选定表后,database-> edit current dbms-> 出现DBMS properties对话框,选择General页,左侧的树选择SQL 2000-> Profile-> Column-> Extended Attributes 下面的ExtIdentityIncrement是步进值,ExtIdentitySeed是起始值,分别设定默认值,后返回。
  2.在表的属性对话框里面,选择Clumns页,按Ctrl+U,在Idenitity前面打上钩。如有必要,也可以将
ExtIdentityIncrement和ExtIdentitySeed也打上勾,这样在设定Idenitity时也可以直接指定起始值和步进值了。
btw:我用的是PD11,刚刚开始学PD,关于Identity的设定也是找了好久。
 
  3.对于ql server ,在表的属性对话框里面,选择Clumns页,按Alt+enter进入列的属性页面,在右下角勾选Idenitity属性即可.
 


sql语句中表名与字段名前的引号去除:
   打开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就可以!


在修改name的时候,code的值将跟着变动,很不方便
   修改方法:PowerDesign中的选项菜单里修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步,将前面的复选框去掉就行了。


由pdm生成建表脚本时,字段超过15字符就发生错误(oracle)
   原因未知,解决办法是打开PDM后,会出现Database的菜单栏,进入Database - Edit Current DBMS -script-objects-column-maxlen,把value值调大(原为30),比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改!
或者使用下面的这种方法:
     生成建表脚本时会弹出Database generation提示框:把options - check model的小勾给去掉,就是不进行检查(不推荐)!
    或者可以修改C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\DBMS\oracl9i2.xdb文件
     修改好后,再cdm转为pdm时,选择“Copy the DBMS definition in model”把把这个资源文件拷贝到模型中。


由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%表示是父字段!


建立一个表后,为何检测出现Existence of index的警告
    A table should contain at least one column, one index, one key, and one reference.
可以不检查 Existence of index 这项,也就没有这个警告错误了!
意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用管也没有关系!

如何防止一对一的关系生成两个引用(外键)
   要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。
在cdm中双击一对一关系->Detail->Dominant role选择支配关系

修改报表模板中一些术语的定义
   即文件:C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\Report Languages\Chinese.xrl
Tools-Resources-Report Languages-选择Chinese-单击Properties或双击目标
修改某些对象的名称:Object Attributes\Physical Data Model\Column\
        ForeignKey:外键
        Mandatory:为空
        Primary:主键
        Table:表

用查找替换,把“表格”替换成“表”
   修改显示的内容为别的:Values Mapping\Lists\Standard,添加TRUE的转化列为是,FALSE的转化列为空
另外Report-Title Page里可以设置标题信息

PowerDesigner 生成SQL的Existence of refernce错误问题
现象:用PowerDesigner生成SQL语句时,提示Existence of refernce错误。
原因:该表没有与其他表的关联(如外键等),而PowerDesigner需要存在一个refernce才能生成SQL.
解决方法:
    在工具栏空白处右键打开Palette面板,选中Link/Extended Dependency 按钮,然后在提示出错的表上添加到自己的Dependency。
    重新生成SQL,你将发现刚才提示的错误没有了,问题解决。
 
利用PowerDesigner批量生成测试数据
主要解决方法:
A:在PowerDesigner 建表
B:然后给每一个表的字段建立相应的摘要文件
步骤如下:
Model->Test Data Profiles配置每一个字段摘要文件General:输入Name、Code、
选择Class(数字、字符、时间)类型
选择Generation Source: Automatic、List、ODBC、File Detail:配置字段相关信息
所有字段摘要文件配置完成后双击该表->选择字段->Detail->选择Test Data Parameters 摘要文件如果字段值与其它字段有关系在: Computed Expression 中输入计算列--生成测试数据:
DataBase->Generation Test Data->
选择:Genration 类型(Sript、ODBC)
     Selection(选择要生成的表)
     Test Data Genration(Default number of rows 生成记录行数)

 
 
1.使用PD12时出现以下错误:
 
Reference constraint name maximum
 
length is limited to 30 characters
 
Key constraint name maximum length
 
is limited to 30 characters
 
Table code maximum length
 
Column code maximum length
 
……
 
导致生成建表SQL时通不过,细究原因原来是默认设置的问题,改下就可以了。
 
调整以下参数:
 
Database=>Edit current DBMS 数据库类型::Script\Objects\MaxConstLen value=>255
 
Database=>Edit current DBMS 数据库类型::Script\Objects\Table\Maxlen value=>255
 
Database=>Edit current DBMS 数据库类型::Script\Objects\Column\Maxlen value=>255
 
但是要注意的是,表名、列名、主键等不要超过30个字符,否则Oracle不认。
 
2.附:生成数据库脚本
 
Database=>Generate database
 
-----------------------------
 
-----------------------------
 
默认生成的SQL语句(表名、字段名等)都带双引号,导致用SQLPlus插入Oracle数据库时表名与表列都带""号,要解决这个问题,在数据库中做如下设置:
 
Database-> Edit Current DBMS...-> Script-> Sql->
 
Format-> CaseSensitivityUsingQuote 改为No
 
3.如何在powerDesigner中给字段赋默认值
 
双击表,出现column列表,双击要设置的列的左边的灰色框,应该会弹出新的窗口,然后在新窗口上选择standard checks ,里面有default的

 

PowerDesigner15.1学习总结

面试HibernateMySQLMyeclipse数据结构.


(本文是从我的日常工作记录中转载的,所以说的比较乱)
 
注意:PowerDesigner15.0没有生成Hibernate映射文件功能,如果装了最好卸载吧.
 
 
 
我先来弄个mysql逆向到pd
1.File-->Reverse Engineer -->Database-->弹出Database Reverse Engineering对话框,选Using an ODBC data source选ODBC数据源
参考:http://tech.it168.com/a2009/0115/263/000000263182.shtml
 
我的练习,从mysql数据库中将数据库ybms反向映射到PD,然后会生成pdm(PhysicalDataModel)物理数据模型, 然后再在Tool-->Generate Object Oriented Model(产生对象向
 
导模型)-->
导出java和Hibernate文件: language--> Generate java Code -->选择相关的路径
 
导出的时候出现错误:generation has been cancelled because errors have been found by the check model
解决:
进入Database   -   Edit   Current   DBMS  直接在Script\Objects的中maxconstlen里修改就可以了 (把value值调大(原为30),比如改成60。出现表或者其它对象的长度也有这
 
种错误的话都可以选择对应的objects照此种方法更改!)
 
check module老是报persistent class in default package
在Tools下的 Check Model Parameters 下将Package下的一些报错提示去掉,其他的错误也可以这样处理,(改了还是不行.......比较郁闷,改好了,在class选项下,仔细找找)
生成工程终于成功啦!!!!!!!!!!!!!!!
 
小技巧1:生成html报告:Report --> Generate Report
 
小技巧2:PowerDesigner中,但修改了某个字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名。
解决方法如下:
1、选择Tools->GeneralOptions...菜单,出现General Options对话框。
2、从Category中选择Dialog项。
3、取消右边“Name to Code mirroring”复选框。
 
 
 
 
 
后记:我一直在想是先有鸡呢,还是先有蛋呢?无论怎么样,必须有一个在另外那个才会出现.
 
我有数据库的话,可以通过myEclipse反向工程:生成DAO,Hibernate配置文件,实体类等.
 
如果我有实体类,Hibernate配置文件,我又可以通过

 

原创粉丝点击