powerdesigner数据库设计技巧

1. 逻辑视图转物理视图时,转换逻辑视图和物理视图对应的code值。对于一个数据库管理系统,不论大小,其实体名和属性名称都是有限的。对于大型应用系统更是如此。在PowerDesigner 中对实体建PDM时,如果每一个CODE都手工输入一个名称,不但累而且一旦变更,将要多处改变,不太合理。可以针对系统中设写一个CODE NAME的 CSV 文件,即naming code 文件,使用其命名空间的功能,自动转换。如果描述有变化,只需要修改CSV文件即可。

  • 创建逻辑视图,并定义逻辑视图的默认设置。powerdesigner数据库设计技巧_第1张图片powerdesigner数据库设计技巧_第2张图片
  •  在逻辑视图中创建一个用户表,并定义基本的列属性。注:如果不单独设置,code值默认会与name值相同。
    powerdesigner数据库设计技巧_第3张图片
  •  逻辑视图转物理视图。配置物理视图转换规则。
    powerdesigner数据库设计技巧_第4张图片
     

    powerdesigner数据库设计技巧_第5张图片
     
     
    powerdesigner数据库设计技巧_第6张图片
     
    powerdesigner数据库设计技巧_第7张图片注:FK名称的规则默认是截取关联表的前三个字符,修改后使用完整的关联表名称+ID。
  •  转换后的物理视图
    powerdesigner数据库设计技巧_第8张图片
     
    powerdesigner数据库设计技巧_第9张图片

2.此时物理视图已经生成,但是生成的物理视图中表和列的备注信息默认是为空的。我们希望显示出备注信息,并且备注信息要和逻辑视图中表或列的名称相同。
powerdesigner数据库设计技巧_第10张图片
 运行vb脚本,设置comment=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  
  
'This routine copy name into code for each table, each column and each view  
'of the current folder  
Private sub ProcessFolder(folder)  
Dim Tab 'running table  
for each Tab in folder.tables  
if not tab.isShortcut then  
tab.comment = tab.name  
Dim col 'running column  
for each col in tab.columns  
col.comment= col.name  
next  
end if  
next  
  
Dim view 'running view  
for each view in folder.Views  
if not view.isShortcut then  
view.comment = view.name  
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


powerdesigner数据库设计技巧_第11张图片



powerdesigner数据库设计技巧_第12张图片
powerdesigner数据库设计技巧_第13张图片

  •  转换完成后就可以生成不同数据库SQL。在使用代码生成工具生成代码时,可以直接读取列的comment作为列的业务名称了。

 

你可能感兴趣的:(powerDesigner)