免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 20571 | 回复: 16
打印 上一主题 下一主题

PD中建CDM模型,一个Diagram中有两张表,字段不能重复? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-07 14:57 |只看该作者 |倒序浏览
10可用积分
PD中建CDM模型,一个Diagram中有两张表,字段不能重复?
---------------------------------------------------------------------
否则,在执行Check Modle时会报警出来提示说:
Category                         Check                                                Object                                           Location
---------------               -----------------                          ---------------------                           ----------------
Data Item           Data Item used multiple times                     Data Item 'CREATE_CODE'               <Model>

[ 本帖最后由 TOADLover 于 2009-8-7 15:01 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-08-07 15:05 |只看该作者
在CDM里建模型的时候,如果多个表里包含同名的字段,则该字段在一个表里被修改,则在所有地方都会被修改。即是连动的,好像在PD内部都关联到了一个对象上似的。
2.在CDM里建模型的时候,如果两个表里使用同名的字段做主键,根本不行,直接报错!!
文章出处:http://www.diybl.com/course/3_pr ... /200847/108495.html
--------------------------------
看到别人也遇到了这个问题。

论坛徽章:
0
3 [报告]
发表于 2009-08-07 15:06 |只看该作者
1.在PDM里不存在CDM里的问题,不仅不同表里的同名字段没有连动关系,而且还可以用同名字段做主键。

论坛徽章:
0
4 [报告]
发表于 2009-08-07 15:07 |只看该作者
1.在PDM里不存在CDM里的问题,不仅不同表里的同名字段没有连动关系,而且还可以用同名字段做主键。爽!
2.做一个有重复字段和重复主键字段的PDM,反导成CDM,结果发现在该CDM里居然可以允许重名字段和字段主键了,同PDM里的情况一样,也爽!由此我觉得一定可以通过某些设置去掉初始在CDM建模型的时候的重名约束。
---------
别人是这么说的,呵呵

论坛徽章:
0
5 [报告]
发表于 2009-08-07 15:08 |只看该作者
经过艰苦卓绝得努力,终于找到了设置这个重名约束得地方!找了好几年了!以前一直以为这是PD的漏洞呢,问过好几个PD老牛都没解决,现在想想简直惭愧死了![如果看贴的同志早就知道这个了,见笑]
--------------------------------------------------------------------------------------
具体方法:
选择"Tools -> Model Options"后,弹出如下图所示窗体:
---------------------------------------------------------------------------------------


[ 本帖最后由 TOADLover 于 2009-8-7 15:10 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-08-07 15:12 |只看该作者
将红框里的"Unique code"复选框的钩去掉就OK啦!哈哈哈

其它问题:
大家注意上图红框里还有一个"Allow reuse"复选框,建议把这个钩也去掉,那么以后就不要担心在模型里发生字段连动修改的问题了,我刚实验了一下,即使从一个表粘贴复制一个字段到另一个表里,这两个字段也不会连动修改!哈哈哈,爽!

最后建议把两个钩都去掉后,点击"Set As Default"按钮,把这设置成默认设置,以后就万事大吉了!太爽了!

曾经也被这个问题折磨过的兄弟们留言庆祝一下~哈哈

原帖:http://www.cnblogs.com/justinw/archive/2006/05/10/396709.aspx
----------------------------------------------------------------------------------------------------
真诚感谢前面的所有兄弟们!

论坛徽章:
0
7 [报告]
发表于 2009-08-07 15:17 |只看该作者
-------------------------
由pdm生成建表脚本时,字段超过15字符就发生错误(oracle)
原因未知,解决办法是打开PDM后,会出现Database的菜单栏,进入Database - Edit Current DBMS -script-objects-column-maxlen,把value值调大(原为30),比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改!
-------------------------
这个也在这里留念一下

论坛徽章:
0
8 [报告]
发表于 2009-08-07 15:22 |只看该作者
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就可以!
----------------------------------------------------
5、去掉生成的SQL脚本双引号的问题:ORACLE 8I2::Script\Sql\Format\CaseSensitivityUsingQuote改成No,默认是Yes所以会有双引号。

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

[ 本帖最后由 TOADLover 于 2009-8-7 15:23 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-08-07 15:24 |只看该作者
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:主键
Table:表
用查找替换,把“表格”替换成“表”
修改显示的内容为别的:Values MappingListsStandard,添加TRUE的转化列为是,FALSE的转化列为空
另外Report-Title Page里可以设置标题信息。
---------------------------------------------------------------------------------------------------

[ 本帖最后由 TOADLover 于 2009-8-7 15:25 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-08-07 15:26 |只看该作者
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
-------------------------------


[ 本帖最后由 TOADLover 于 2009-8-7 15:29 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP