如何批量修改文件类型pd模型中的数据类型

pd由物理模型生成数据库时外键冲突问题
做数据库设计时,由物理模型生成sql文件时老出错,提示有表冲突,后来发现是因为表与表之间的外键名字重复的原因造成的,在物理模型的时候能修改外键可解决,但是不能从根本解决问题。
这些外键名是pd自己生成的,生成的规则是只取表名前几个字母,比如我的一个模板表叫template,一个模板组表叫templategroup,而模板组又自连接,然后模板组自连接生成的外键和模板与模板组生成的外键名字可能会相同,因为只取前几个字母的话都一样,这时是需要修改表名的,可以把templategroup改为tgroup,即可解决问题。
不过这种方法需要修改表名,比较麻烦,可以如下解决:
选择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掌握这种方法后就可以按照自己的想法修改外键了
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。6938人阅读
PowerDesigner 12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键
1. 附加:工具栏不见了
调色板(Palette)快捷工具栏不见了
PowerDesigner 快捷工具栏 palette 不见了,怎么重新打开,找回来呢
上网搜索了一下”powerdesigner 图形工具栏”,找到了找回PowerDesigner工具栏palette的方法
Tools(工具栏)
customsize toolbars(自定义工具栏)
palette(调色板)勾选
2. 修改外键命名规则
选择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钩选项即可。
3. 添加外键
Model -& References新建一条外键后,双击进入外键属性,在“Joins”卡片中可以选择子表的外键字段
4. 如何实现Name和code不自动相等
如何实现在CDM中创建Entity时,Name和Code不自动对应
设置tools--Gerneral options---&dialog----&name to code mirroring
5. 如何把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%就是列的Name值(可以是中文)
6. POWERdESIGEN 自增长列的设置
PDM里查看表的属性,Columns选项卡,选中整列,查看列属性,点左上方的properties图标(有手形图案的那个),此时打开一个设置窗口,General选项卡里面进行设置.&
在列属性的General标签页里有个Identity复选框,勾上就行了
7.& 如何在PowerDesigner下建索引
1 双击表设计图,出来Table Properties,在Tab 页中选择 Indexes
2 单击新建索引的属性,出现Indexex Properties
3 增加一个索引包含的字段
8. 如何在PowerDesigner 下建自增列
使用SqlServer 数据库中的下列语句来完成
建表语句中,在要做为自增列的字段中,加上如下
IDENTITY(1,1)
还有可以使用下面语句,重置自增种子
dbcc checkident(ConfigSys,reseed,0);
9. 如何在PowerDesigner 下检查设计模型
1 在菜单栏中选择 Tools -? Check Model, 如下图
2 选择要检查的每项设置
3 确定后,将出来检查结果汇总信息
10. 设置CDM生成PDM时的错误检查
Tools --& Check Model
11. 如何防止一对一的关系生成两个引用(外键)
要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。
在cdm中双击一对一关系-&Detail-&Dominant role选择支配关系
12. PowerDesigner8中的CDM设计的外键作主键的问题
两个实体之间是一对一的关系。两个实体的标识符是“一样的”--但是好像CDM中不允许相同。这样的情况怎么处理?
CDM里好像没有外键,我是说转换成PDM之后,外键又要做表的主键,在对应的CDM里是怎么设置的?
双击关系,在弹出的Relationship Properties窗口中选择Detail选项,然后将Dependent复选框选中,即可
13. 禁止根据name自动输入code
Tools --& General Options --& Dialog --& 取消选中Name to Code mirroring
14。使用PowerDesigner检查数据库设计错误~
PowerDesigner 还可用于快速检测新模型中的数据库设计错误。
检查新的模式:
从 [Tools] 菜单中选择 [Check Model]。
此时,就会出现 [Check Model Parameters] 对话框。可以使用缺省参数。
另外也可以直接在空白处单击右键,选择Check Model...即可,我一般喜欢这样用。
单击 [确定]。
此时,在 [Result List] 中就会显示 [Check Model] 的结果。
15。如何将Conceptual Data Model (CDM)转换成Physical Data Model(PDM)?
即将概念数据模型转换成物理数据模型。
二者的区别是,CDM是纯粹概念上的模型,PDM是和具体的数据库类型相关的,比如SQL Server 2000或者Oracle。生成SQL语句当然也就需要从PDM生成。
在菜单上选择Tools -& Generate Phisical Data Model
最后选择你的数据库类型,即可。
16。使用PowerDesigner生成SQL语句~
可以使用 PowerDesigner 生成一个 SQL 脚本,该脚本用于实施模型的所有组件。然后,使用 SQL 脚本生成一个数据库。
这时候要确保你用的是PDM。
生成 SQL 脚本以新建数据库:
从 [Database] 菜单中选择 [Generate Database]。
此时,就会出现 [Database Generation] 对话框
在 [Directory] 字段中键入 c:Temp,并在 [File Name] 字段中键入 NewDemo.sql。
确保选中了 [ Generation]。
单击 [Database] 选项卡,并确保选中了 [Create Database]。
浏览其它选项卡,以查看控制所生成脚本的许多其它属性的选项。
单击 [确定]。
创建脚本后,就会出现 [Result] 对话框。
17。为什么出现Warning : table Existence of index 表名 ?
说明该表没有建立索引。不过这是一个警告,不是错误,可以不用理会它。
18。如何建立联合主键?
联合主键就是一个表里面有多个主键,比如一份学生选课的表里面,学生ID和课程ID就同时是主键。
在设置Attributes,把2个字段的P那项都勾上,P表示Primary Key主键。
19。如何建立外键Foreign Key?
在PowerDesigner中,通过建立关系Relationship就可以自动建立外键,不需要手动添加。
而建立Relationship有2种办法:可以通过菜单选择Model -& Relationships...,也可以通过在右边的工具栏中拖拽Relationship控件。
20。如何生成数据字典?
通过菜单Report -& Report Wizard...可以生成
注意可以选择Template.因为我是通过PDM生成,所以选择了Standard Physical Template~
1、安装PD v11.0版
2、由生成建表脚本时,字段超过15字符就发生错误()
原因未知,解决办法是打开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”把把这个资源文件拷贝到模型中。
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、建立一个表后,为何检测出现Existence of index的警告
A table should contain at least one column, one index, one key, and one reference.
可以不检查 Existence of index 这项,也就没有这个警告错误了!
意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用管也没有关系!
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、如何防止一对一的关系生成两个引用(外键)
要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。
在cdm中双击一对一关系-&Detail-&Dominant role选择支配关系
8、修改报表模板中一些术语的定义
即文件: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里可以设置标题信息
1。pd中复制一列是,实际上是一个链接。源列的变动同时体现在复制列上
2。数据库设计通常步骤:CDM确定主要结构--》生成PDM--》在PDM上修改,必要时生成CDM
3。若由pdm生成cdm再生成pdm,在pdm中修改过的外键名将被改回到默认值
4。必要时可以通过修改模板(Database-Edit Current DataBase)改变脚本的格式。例如:
Script-Objects-Column-Add的Value中开头增加一行“--%COLNNAME%”以便在脚本中显示列的中英文对照
5。去掉讨厌的name、code映射:Tools-General Options-clear the Name to Code mirroring check box
6。对于大小写不敏感的数据库(如Oracle),PowerDesign在创建脚本时自动给表名和字段名加上双引号,以“强字符串”形式来获取区分大小写,这样给SQL语句的编写制造很多麻烦。去掉这个添足的功能:
Database -〉Edit Current DBMS -〉Script. -〉Sql -〉Format -〉CaseSensitivityUsingQuote
右边面板参数值 Value 选择No
7。由cdm生成pdm,可以控制是否将关系生成引用;由pdm生成脚本,可以控制是否将引用生成外键
8。对于oracle而言,为表设置选项(如tablespace GPSSYSTEM)可使其创建到正确的表空间;为主键设置选项(using index tablespace GPSINDEX)使索引创建到正确的表空间中
1、安装PD v12.0版
2、由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”把把这个资源文件拷贝到模型中。
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、建立一个表后,为何检测出现Existence of index的警告
A table should contain at least one column, one index, one key, and one reference.
可以不检查 Existence of index 这项,也就没有这个警告错误了!
意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用管也没有关系!
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、如何防止一对一的关系生成两个引用(外键)
要定义关系的支配方向,占支配地位的实体(有D标志)变为父表。
在cdm中双击一对一关系-&Detail-&Dominant role选择支配关系
8、修改报表模板中一些术语的定义
即文件:C:Program FilesSybasePowerDesigner Trial 11Resource FilesReport LanguagesChinese.xrl
Tools-Resources-Report Languages-选择Chinese-单击Properties或双击目标
修改某些对象的名称:Object AttributesPhysical Data ModelColumn
ForeignKey:外键
Mandatory:为空
Primary:主键
用查找替换,把“表格”替换成“表”
修改显示的内容为别的:Values MappingListsStandard,添加TRUE的转化列为是,FALSE的转化列为空
另外Report-Title Page里可以设置标题信息。
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],这里默认是让名称和代码同步,将前面的复选框去掉就行了。
6、有关Powerdesgner数据模型设计中,属性名同名问题的解决方法
PowerDesigner默认在CDM中不能存在相同名称的实体属性,这也是考虑到可能产生的一些如主键外键等名称冲突问题,但当我们进行实际数据库设计时,可能会多次使用相同数据项(DataItem)便于理解各实体。为此需要对更改PowerDesigner相关设置。软件默认为DataItem不能重复使用(重名),需要进行以下操作:
选择Tools-&Model Options,在Model Setting设置目录中,将Data Item下的Unique Code取消选中即可,系统默认将Unique Code和Allow Reuse均选中。
同时该设置均是面向特定模型的,即针对当前模型有效,若希望在其它模型中也有此命名设置,则需要重新进行设置。不过在Check Model时,如果选择全部Check,则依旧会报DataItem重名的错误信息,这时需要我们在人为检查确认数据项无误时,可以在选择不对DataItem不检查,各种数据类型对应匹配(这里只给出与SQL Server中的常用对应类型,其它DBMS可以使用类似处理)
1 如何在PowerDesigner下建索引
2 如何在PowerDesigner 下建自增列
3 如何在PowerDesigner 下检查设计模型
1 如何在PowerDesigner下建索引
1 双击表设计图,出来Table Properties,在Tab 页中选择 Indexes
2 单击新建索引的属性,出现Indexex Properties
3 增加一个索引包含的字段
2 如何在PowerDesigner 下建自增列
使用SqlServer 数据库中的下列语句来完成
建表语句中,在要做为自增列的字段中,加上如下
IDENTITY(1,1)
还有可以使用下面语句,重置自增种子
dbcc checkident(ConfigSys,reseed,0);
3 如何在PowerDesigner 下检查设计模型
1 在菜单栏中选择 Tools -? Check Model, 如下图
2 选择要检查的每项设置
3 确定后,将出来检查结果汇总信息
--------------------------
如果你对java、swing、各种框架、javascript、css、linux、数据库编程等知识很感兴趣,或者正在从事这些工作,
欢迎加入我的qq技术交流群:java不瘸腿()
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:379185次
积分:6002
积分:6002
排名:第1947名
原创:223篇
转载:71篇
评论:63条
(2)(7)(1)(6)(4)(4)(2)(4)(8)(3)(1)(4)(3)(4)(3)(1)(2)(1)(2)(3)(2)(1)(6)(2)(1)(2)(3)(7)(23)(5)(10)(2)(1)(2)(3)(24)(1)(6)(3)(2)(13)(8)(2)(8)(7)(3)(11)(5)(2)(6)(10)(2)(12)(3)(8)(9)(1)(5)(1)(1)(1)(3)(5)(1)pd如何建表_百度知道
pd如何建表
提问者采纳
Java书籍太多这方面的介绍了。(1)运行PowerDesigner,并在PowerDesigner主窗口中选择主菜单中的File/New命令,在打开的New对话框左侧Model type列表框中选择Physical Data Model(物理数据模型,简称PDB)选项,在右侧的Model name文本框中输入模型名称JXCManager,在DBMS下拉列表框中选择数据库管理系统。PowerDesigner支持的数据库管理系统非常多,例如常用的MySQL 5.0、Microsoft SQL Server 2005、Oracle Version 10gR2等。企业进销存管理系统选择Microsoft SQL Server 2000作为数据库服务器,单击“确定”按钮。(2)打开新建的PDM窗口。在该窗口的中心空白区域是模型编辑器,下方为输出窗口。另外还有一个浮动的工具面板,其中包括常用的建表工具、建视图工具和主外键引用工具。(3)在图1.13中单击“建表工具”按钮 ,这时鼠标指针将显示为 ,在模型编辑器的合适位置单击,此时在图形窗口中将显示如图1.14所示的数据表模型。注意:细心的读者可以发现,此时的鼠标指针仍然是 。如果再次单击还将出现类似图1.14所示的表符号。如果想取消该指针,可以单击工具面板中的 按钮或单击鼠标右键。(4)在图1.14所示的表符号上双击鼠标左键,将打开Table Properties(表属性)对话框。默认情况下选中的是General选项卡,在该选项卡的Name文本框中,输入表的名称tb_manager,此时在Code文本框中也将自动显示tb_manager,其他选择默认即可。(5)选择Columns选项卡,首先单击列输入列表的第一行,将自动转换第一行为编辑状态,然后在 Name列输入字段名称为ID,同时Code列也将自动显示为ID,再在Data Type列中选择int选项,最后选中P列的复选框将该数据表字段设置为主键,此时M列的复选框也将自动被选中,它约束字段值不能为空。(6)按照步骤(5)的方法再添加两个列name和PWD,但是不需要选中P列复选框设置主键,如图1.15所示。(7) 在图1.15中单击“应用”按钮后,选择ID字段,单击左上角的 按钮,将打开Column Properties(列属性)对话框,默认选中General选项卡,在其中选中Identity复选框,此项操作用于设置ID字段使用自动编号。(8)单击“应用”按钮后,再单击“确定”按钮,关闭Column Properties对话框。(9)单击“确定”按钮,关闭Table Properties对话框,完成tb_manager表的创建。(10)按照步骤(3)~步骤(9)的方法创建本系统中的其他数据表,并通过主外键引用工具建立各表间的依赖关系。创建完成的模型如图1.16所示。 技巧:在默认情况下,创建后的表模型中的全部文字均为常规样式的宋体8号字,如果想修改文字的格式,可以选中全部表符号,按Ctrl+T键,在打开的Symbol Format对话框中选择Font选项卡,从中设置相关内容的字体及样式和字号等。(11)选择PowerDesigner主菜单中的Database/Generate Database命令,将打开Database Generation对话框。在该对话框中设置导出的脚本文件的名称(如jxc.sql)及保存路径(如D:\JXC),选中Script generation单选按钮,如图1.17所示。单击“确定”按钮,会在指定的路径中生成数据库脚本文件。(12)在图1.17所示的对话框中选择Direct generation单选按钮,可以使用ODBC数据源直接在数据库管理系统中生成数据表和视图。但是,必须先创建数据库的数据源,然后单击 按钮选择指定的数据源,并单击“确定”按钮。
提问者评价
来自团队:
其他类似问题
为您推荐:
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 pkpd模型的概念是什么 的文章

 

随机推荐