PowerDesigner使用(4)

1、去掉Oracle生成的SQL創建語句中的雙引號 
用powerdesigner導出orale數據庫的建表sql時,默認會給表名和字段名加上雙引號,如下圖:

這樣給操作數據庫帶來很大的不便,解決的辦法是設置Database菜單,

然後點擊Edit Current DBMS菜單,再依次點開Script->Format,然後找到CaseSensitivityUsingQuote
將其設爲NO,即可。如下圖:

如果帶有包的話,導出時要選擇包中的表。
 
2、PowerDesign高級應用
編寫相關的VBS腳本在PowerDesign裏自定義一些命令與操作等,具體的可以參考C:\Program Files\Sybase\PowerDesigner 9\VB Scripts目錄下的腳本示例。怎麼運用這些腳本呢?
在Tools->Execute Commands裏可以進行操作。具體說明在幫助裏寫的很清楚。幫助的位置在  PowerDesigner General Features Guide-> PART 2.  Modeling Guide->CHAPTER 8.  Managing Objects->Accessing objects using VBScript->VBScript uses in PowerDesigner

PowerDesign的使用主要是DBMS的配置
3、修改建表腳本生成規則。
如果每個表格都有相同的字段,可以如下修改:
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值註釋。

4、修改字段生成規則
要給每個字段都添加一個註釋的話,同一窗口中展開 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值(可以是中文)

5、修改外鍵命名規則。
選擇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鉤選項即可。

6、添加外鍵
Model -> References新建一條外鍵後,雙擊進入外鍵屬性,在「Joins」卡片中可以選擇子表的外鍵字段。如下圖:

接着出現如下畫面:

按照步驟操作即可。

7、取消name和code聯動
在修改name的時候,code的值將跟着變動,很不方便。修改方法:PowerDesign中的選項菜單裏修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],這裏默認是讓名稱和代碼同步,將前面的複選框去掉就行了。如圖:


 
編寫相關的VBS腳本在PowerDesign裏自定義一些命令與操作等,具體的可以參考C:\Program Files\Sybase\PowerDesigner 9\VB Scripts目錄下的腳本示例。怎麼運用這些腳本呢?
在Tools-》Execute Commands裏可以進行操作。具體說明在幫助裏寫的很清楚。幫助的位置在  PowerDesigner General Features Guide-> PART 2.  Modeling Guide->CHAPTER 8.  Managing Objects->Accessing objects using VBScript->VBScript uses in PowerDesigner

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],這裏默認是讓名稱和代碼同步,將前面的複選框去掉就行了。  

PowerDesigner設計數據庫規範<o:p></o:p>

----初稿 by 羅軍<o:p></o:p>

需求:<o:p></o:p>

雖然目前我們的數據庫設計模式能夠滿足開發要求,也節省了開發時間,但是這樣的設計會對以後工程項目的維護、改版造成成本上的增加。數據庫表的字段在修改上將對主程序造成影響;另外對於開發和維護人員來說,字段的編碼也需要規範化,這樣可以統一字段編碼,讓維護人員一看就懂,增添的字段對以後接手項目的人員來說則很容易上手。

針對上述問題,我建議數據開發需要定義一套簡明扼要的規範。規範中包括三個部分:一是編碼的規範;二是字段類型長度的定義;三是表設計的特殊說明。

<o:p> </o:p>

設計:<o:p></o:p>

數據庫開發流程先知:PowerDesigner中,我們主要設計物理數據模型(PDM文件),這時需要定義一個工程項目的數據字段域,定義字段域有一個好處就是以後設計數據表時,字段的類型可以選擇用域中定義好的類型,更改了域的類型信息,表中與域引用相關的字段信息也相應改變,這樣方便修改字段,也統一了字段類型和長度。

定義好域之後,就可以設計數據表以及字段了。設計完表,可以選擇導出的數據庫類型,並生成建數據和建表的sql,再通過數據庫連接工具執行sql語句,一個工程項目的數據庫就建立好了。以後只要有數據庫的修改要求,則重新生成sql語句並執行之即可。注意:重新執行sql之前需要確定是否保留原表的數據,若需要保留則只能通過alert語句來修改,否則原表的數據將被沖洗掉。

<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="[email protected]@[email protected]@[email protected]@[email protected]@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> </v:shapetype>

I 數據庫設計流程圖

如圖(圖I)所示爲數據庫設計流程圖,如果有修改內容,我們只需要重新執行箭頭2所指的三個步驟就行。

以下說明數據庫設計過程中的一些要求。

1)  編碼規範

編碼主要是要注意編碼的前後綴,以便看到編碼則知道是什麼類型。

A.      主鍵pk_  [字符串or長整型]     例如:pk_company

B.      外鍵fk_  [字符串or長整型]      例如:fk_employee

C.      字符串 v                       例如:vdetail

D.      字符型 c                       例如:ccolor

E.       時間   d                       例如:ddatetime

F.       邏輯   b                       例如:bisdeleted

G.      整型   i                       例如:itype

H.      數字型(浮點行) n             例如:nprice

I.        文本型 t                       例如:tdescription

J.        對象類型 o                     例如:opicture

給各個表與字段編碼時,儘量保持編碼的長度在20個字符以內,編碼要求有一定意義,並且易懂。

2)  字段類型長度定義

主鍵、外鍵如果是字符串行的話,建議用20個字符的長度。字符串的長度一般定義203050100256512102420484096,超過4096個字符可以建議用文本類型來定義。定義字段的長度主要用於定義域的字段長度,從而規範表字段的類型及長度。

3)  表設計的特殊說明

一般,表中的記錄如果是假刪除的話,則每個表需要統一的刪除字段,另外,時間字段一般每一個表也要求出現,這樣設計可以考慮目前或者以後做多線程訪問的控制判斷(即允許多讀,但不允許多寫),以後還有可能對一類表有固定必需字段的要求,這樣的需求可以利用powerdesigner來統一添加。另外,每一表建議只有主鍵非空,其餘字段均可空,字段的非空判斷交由程序來處理,不用數據庫來判斷。