powerdesigner显示列描述信息

本文介绍了一段用于PowerDesigner的VB脚本,该脚本能够遍历模型中的所有表格和视图,将注释复制到名称字段。适用于CDM或PDM模型,通过PowerDesigner的ExecuteCommands功能执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将Comment中的字符COPY至Name中

-------------------------------------------------- 
Option   Explicit 
ValidationMode   =   True 
InteractiveMode   =   im_Batch

Dim   mdl   '   the   current   model

'   get   the   current   active   model 
Set   mdl   =   ActiveModel 
If   (mdl   Is   Nothing)   Then 
      MsgBox   "There   is   no   current   Model " 
ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then 
      MsgBox   "The   current   model   is   not   an   Physical   Data   model. " 
Else 
      ProcessFolder   mdl 
End   If

Private   sub   ProcessFolder(folder) 
On Error Resume Next 
      Dim   Tab   'running     table 
      for   each   Tab   in   folder.tables 
            if   not   tab.isShortcut   then 
                  tab.name   =   tab.comment 
                  Dim   col   '   running   column 
                  for   each   col   in   tab.columns 
                  if col.comment="" then 
                  else 
                        col.name=   col.comment 
                  end if 
                  next 
            end   if 
      next

      Dim   view   'running   view 
      for   each   view   in   folder.Views 
            if   not   view.isShortcut   then 
                  view.name   =   view.comment 
            end   if 
      next

      '   go   into   the   sub-packages 
      Dim   f   '   running   folder 
      For   Each   f   In   folder.Packages 
            if   not   f.IsShortcut   then 
                  ProcessFolder   f 
            end   if 
      Next 
end   sub

------------------------------------------------------

以上代码是VB脚本,在PowerDesigner中使用方法为:

    PowerDesigner->Tools->Execute Commands->Edit/Run Scripts

将代码Copy进去执行就可以了,是对整个CDM或PDM进行操作


<think>嗯,用户的问题是关于如何在PowerDesigner中为不同表的相同字段设置不同的描述。首先,我需要回忆一下PowerDesigner的基本操作和概念。根据提供的引用内容,特别是引用[2],里面提到实体由属性组成,每个属性都有自己的描述。那问题来了,如果多个表(实体)有相同的字段(属性),但需要不同的描述,应该怎么做呢? 首先,我需要确认PowerDesigner是否允许同一个属性在不同实体中有不同的描述。通常,属性可能是全局定义的,比如在数据模型中,可能有一个公共的域(Domain),这样多个实体可以共享同一个域,但这样描述可能也会被共享。如果用户希望不同的表使用相同的字段名称但不同的描述,可能需要避免使用全局域,而是为每个实体单独定义属性。 接下来,根据步骤,用户可能需要手动修改每个实体的属性描述。例如,在实体A中有一个字段叫“status”,描述是“订单状态”,而在实体B中同样有“status”,但描述是“用户状态”。这时候,即使字段名相同,只要它们属于不同的实体,就可以分别设置描述。 然后,考虑到PowerDesigner的检查机制,如引用[1]提到的,可能会对字段名长度等进行约束,但描述字段的长度可能没有限制,所以修改描述应该不会触发检查问题。不过,用户需要确保在生成DDL时,描述能够正确映射到数据库的注释(如MySQL的COMMENT)。 另外,是否需要使用自定义属性或者扩展属性?比如,某些情况下,用户可能通过扩展属性来添加额外的信息,但标准的方法可能更直接,直接在属性的注释栏里填写不同的描述即可。 还需要检查是否在生成数据库脚本时,这些描述会被正确导出。例如,在物理数据模型中,每个字段的注释应该对应到数据库表中的注释。因此,确保在生成DDL时,注释选项被启用,并且正确应用了每个实体的属性描述。 可能的误区是用户可能误以为相同名称的字段会自动共享描述,但实际上,每个实体中的属性是独立的,只要它们没有被定义为全局域或重用,就可以有不同的描述。因此,关键步骤是分别编辑每个实体中的属性描述,而不是依赖全局设置。 总结下来,解决方法应该是:在PowerDesigner中,为每个实体的相同字段单独设置描述,确保不共享域或属性,然后在生成DDL时检查注释是否正确生成。同时,提醒用户注意维护描述的一致性,避免混淆,特别是在大型项目中可能需要文档记录。</think>### PowerDesigner中为不同表相同字段设置不同描述的步骤说明 #### 1. 创建独立实体属性 - 在**物理数据模型**中,即使字段名称相同,也需要在不同实体中**独立创建属性** - 示例:订单表`Order`和用户表`User`都包含`status`字段 - 操作路径:双击实体 > Attributes标签页 > 新建同名属性 #### 2. 设置差异化描述 - 在属性定义界面,通过`Comment`字段实现描述区分 - 订单表示例: ```properties Name: status Code: STATUS Comment: 订单状态(0-未支付 1-已发货) ``` - 用户表示例: ```properties Name: status Code: STATUS Comment: 用户状态(1-正常 2-冻结) ``` #### 3. 禁用全局属性继承 - 检查`Tools > Model Options > Model Settings > Data Item`设置 - 确认未勾选`Allow reuse of data items`选项[^2] - 此设置可确保不同实体的同名属性独立存储元数据 #### 4. 生成SQL验证注释 - 通过`Database > Generate Database`生成DDL - 检查生成的字段注释: ```sql /* 订单表 */ CREATE TABLE `Order` ( `STATUS` INT COMMENT '订单状态(0-未支付 1-已发货)' ); /* 用户表 */ CREATE TABLE `User` ( `STATUS` INT COMMENT '用户状态(1-正常 2-冻结)' ); ``` #### 5. 使用扩展描述字段(可选) - 对于复杂描述需求,可使用`Extended Attributes`: 1. 右键实体选择`Extended Model Definitions` 2. 添加自定义描述字段 3. 通过`Customize Columns`显示扩展字段
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值