PowerDesigner数据库建模name和code写反了怎么办?

原创 2003年12月07日 22:38:00

namecode的输入错误:有一位网友使用PowerDesigner进行数据库建模,由于对PowerDesigner的使用不熟悉,勿以为对表中的列生成脚本会使用name而不是code。该网友的本意是:使用中文作为注释便于理解和沟通,而sql脚本则采用英文。但是正是由于对这个概念没有弄清楚,恰恰将namecode弄错,code输入列中输入了中文,name列中输入了英文。如下图所示:

所以生成的脚本如下:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

========================================

create table 学生 (

   学号                   int                  null,

   姓名                   varchar(20)          null,

   年龄                   smallint             null,

   性别                   bit                  null,

   已婚                   bit                  null,

   身份证号               varchar(18)          null,

   备注                   varchar(50)          null

)

========================================

这恰恰和他的本意相违背,所以,为了正确的生成英文脚本时,不得不手动将namecode以正确的中英文次序再重新输入一次,模型中有几十张表,该工作耗费了大量宝贵的开发的时间,造成了不必要的损失。

讨论:

要解决这个问题我们要首先要了解PowerDesigner是如何成脚本。在2.15PowerDesigner的变量一节中曾经提到,很多对象都既包含一个代码变量(code variable)又包含一个生成代码变量(generated code variable)。代码(code)变量是在对象属性窗口中定义的属性代码,而生成代码(generated code)变量则是根据对象的属性代码和生成选项计算而产生的,如果代码(Code)的长度超过了DBMS中限制的最大长度,则会自动截取code产生生成代码(generated code)。而PowerDesigner在默认情况下生成脚本既不是采用name也不是code,而是代码(code)生成的“生成代码”(generated code)作为对象的名称。而通常情况下由于code本身没有超过DBMS规定的最大长度,所以会给人一种错误的认识,认为脚本生成使用的是code作为名称。

这样,在这个例子中解决问题的思路就很清楚了,如果可以采用name来生成英文代码就可以解决该问题,换句话说,就是用name(名称)替换generated code(生成代码)。参考2.15PowerDesigner的变量一节中的变量列表:“用于定义表的变量”,可得知COLUMN是列的生成代码,COLNNAME是列名称(name),COLNCODE是列代码(code)。

COLNCODECOLUMN不同之处在于COLUMN是列的生成代码,即COLNCODEDBMS最大长度范围内的code,如果code太长,就会被截取一部分,这时候的COLUMN就和COLNCODE就不相等了,但通常情况下code不会超过最大长度即与COLUMN相等。

解决方案:

如下图所示,选择Database->Edit current database,选择script->object->column->add

 

图表 2.15.2.1

可以在窗口右方的Value编辑框中看到定义表中列的代码模板:

==========================================

%20:COLUMN%[%COMPUTE%?AS(%COMPUTE%):%20:DATATYPE%[%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]

[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]

==========================================

参考2.15.2 PowerDesigner中对变量格式化一节,此外,由于变量在PowerDesigner中的引用需要加“% %”,所以很容易理解代码模板中的“%20:COLUMN%”表示对列的生成代码(generated code)采用固定长度20位,而我们需要做的正是将COLUMN换为COLNNAME,也就是将“%20:COLNNAME%”换为“%20:COLNNAME%”,然后点击确定,弹出确认窗口,点击“是”表示保存该修改。进入表中的priview属性页中可以查看代码发生变化,基本上解决了这个问题:

==========================================

create table 学生 (

   studenNo             int                  null,

   studentName          varchar(20)          null,

   age                  smallint             null,

   gender               bit                  null,

   isMarried            bit                  null,

   idCardNo             varchar(18)          null,

   description          varchar(50)          null

)

==========================================

观察代码发现表名称还是采用了这位网友输入的相反的中文,我们可以用相同的方法,Database->Edit current database,选择Script->Object->Table->Create%TABLE%换为%TNAME%,这样,便会发现脚本中的“学生”也会正确的成为“student”。

通过这种方法,这个问题的解决只需要花费不到一分钟的时间,而不需要动辄手动修改数小时,让人头晕眼花没有一丝成就感。

PowerDesigner数据库建模name和code写反了解决或者是设置name和code的联动

name和code的输入错误:有一位网友使用PowerDesigner进行数据库建模,由于对PowerDesigner的使用不熟悉,勿以为对表中的列生成脚本会使用name而不是code。该网友的本意是...
  • linlinv3
  • linlinv3
  • 2013年08月22日 10:05
  • 6195

使用powerdesigner导入sql脚本,生成物理模型,name和code都显示英文的解决方法

1.使用powerdesigner导入sql脚本,生成物理模型,步骤如下: 选择相应的数据库 选择脚本文件 成功后,表名和字段名都显示英文,comment并没有显示。 解决方法:运行...
  • lanonola
  • lanonola
  • 2016年06月06日 14:46
  • 1826

PowerDesigner设计数据库后将name自动添加到commit中

在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文。Name用来显 示,Code在代码中使用,但Comment中的文字会保...
  • xm1331305
  • xm1331305
  • 2013年06月25日 10:20
  • 1600

使用PowerDesigner进行数据库建模入门

PowerDesigner(简称PD)是一种强大的数据库建模工具,使用PD可以创建业务模型,UML类图等,当然最主要的功能是数据库建模。我打算分以下几个部分来讲如何使用PD。   1,两种重要模型,...
  • jbjwpzyl3611421
  • jbjwpzyl3611421
  • 2014年06月14日 08:21
  • 5541

Powerdesigner数据库建模工具教程

Powerdesigner数据库建模工具教程 目标: 本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念。 一、概念数据模型概述 数据模型是现实世界中数据特征的抽象。数据模型应该...
  • liuchangjie0112
  • liuchangjie0112
  • 2017年06月16日 15:36
  • 700

PowerDesigner中NAME和COMMENT的互相转换,需要执行语句

原文: http://www.cnblogs.com/yelaiju/archive/2013/04/26/3044828.html   由于PDM 的表中 Name 会默认=Code ...
  • liangzhonglin
  • liangzhonglin
  • 2016年03月23日 11:25
  • 2540

PowerDesigner 将表的字段name属性设置到comment注释

PowerDesigner 将表的字段name属性设置到comment注释
  • joeyon
  • joeyon
  • 2014年10月15日 17:12
  • 2565

PowerDesigner 开发数据库建模

此文描述详细,特此转载,仅复制了大部分内容,可参考原文CodeSmith和PowerDesigner的安装和数据库创建(原创) 请大家不要用于商业用途哈,要支持正版,大家都是做软件的,知道开发一套软...
  • KuangYeYaZi
  • KuangYeYaZi
  • 2016年06月14日 17:14
  • 6090

PowerDesigner使用教程 —— 概念数据模型(CDM模型)

一、概念数据模型概述     概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要...
  • skyboy11yk
  • skyboy11yk
  • 2013年09月16日 23:35
  • 1856

Powerdesigner16.5将物理模型表中的name在创建数据库时生成对应字段的注释

本章节描述在数据库建模时,如何将物理模型中表的name值在生成数据库对应表时,转换成对应字段的注释。...
  • feifei6014
  • feifei6014
  • 2014年12月24日 15:23
  • 2198
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PowerDesigner数据库建模name和code写反了怎么办?
举报原因:
原因补充:

(最多只允许输入30个字)