PowerDesigner使用小總結

前言

總結powerdesigner使用技巧,如取消name和code的聯動,去掉雙引號等,方便中國用戶使用數據庫

本身使用的PowerDesigner版本爲16.5數據庫設計

基礎

  • 去掉SQL中的雙引號性能

    按照圖片圈出來的部分操做spa

    修改配置設計

  • 取消name和code的聯動code

    依次選擇:Tools->General Operationsblog

    出現下圖界面,選擇Dialog,將圖中的複選框選擇取消掉圖片

  • 在表中顯示name和codeci

    依次選擇:Tools->Display Preferencesget

    出現下圖界面,選擇Table,點擊Advanced

    根據圖中圈出來的部分最終肯定顯示的列和前後順序

    最終的顯示結果以下:

  • 建立的外鍵關聯不添加物理鏈接

        如今一般作數據庫設計的時候再也不須要外鍵,由於外鍵會嚴重下降性能,但powerdesigner的默認配置在使用外鍵時會自動添加物理鏈接,並且刪除外鍵的時候會自動刪掉列,這讓人很痛苦,後來發現用兩種方式能夠避免此問題

        1.使用外鍵-reference(實現),但不建立鏈接

            PowerDesigner中配置外鍵關係時,若是要刪除配置的外鍵關係,默認設置會一同刪除外鍵列. 要更改此設置,需在菜單欄tools中打開Model Options,在Model Settings中點擊Reference, 而後把"Auto-migrate columns"這個checkbox的勾去掉,便可

        2.使用追溯-traceability link(虛線),不會生成外鍵

            這樣可能以往在視覺上效果不同,但我建議能夠這樣作,避免別人誤認爲導出來的腳本是含有外鍵的

高級

  • 將name字段值放到comment

    中國用戶爲了方便理解,在name字段一般使用中文,最終還但願將中文添加到備註當中去。下面的操做步驟很是重要

    1.設計表的時候先不要去添加任何字段的備註,不然一下子執行腳本將name轉換爲字段的時候會將以前的備註所有清除掉

    2.執行腳本

    3.添加個性化的備註,好比約定枚舉值等

    版本一:name覆蓋comment

        腳本內容以下:

'******************************************************************************
'* File:     name2comment.vbs
'* Title:    Name to Comment Conversion
'* Model:    Physical Data Model
'* Objects: Table, Column, View
'* Author:   steveguoshao
'* Created: 2013-11-29
'* Mod By:   
'* Modified: 
'* Version: 1.0
'* Memo:     Modify from name2code.vbs
'******************************************************************************
​
​
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   comment   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

    版本2:若是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   comment   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
                     if  trim(tab.comment)="" then'若是有表的註釋,則不改變它.若是沒有表註釋.則把name添加到註釋裏面.
                        tab.comment   =   tab.name
                     end if  
                  Dim   col   '   running   column    
                  for   each   col   in   tab.columns   
                        if trim(col.comment)="" then '若是col的comment爲空,則填入name,若是已有註釋,則不添加;這樣能夠避免已有註釋丟失.
                           col.comment=   col.name   
                        end if 
                  next    
            end   if    
      next    
  
      Dim   view   'running   view    
      for   each   view   in   folder.Views    
            if   not   view.isShortcut and trim(view.comment)=""  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

將上面的內容保存到name2comment.vbs中

進入腳本執行界面

打開選擇腳本窗口

選擇並執行腳本

而後查看你的SQL腳本

相關文章
相關標籤/搜索