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指令碼雙引號的問題:選擇菜單Database/Edit Current DBMS ORACLE10g::Script/Sql/Format/CaseSensitivityUsingQuote改成No,預設是Yes所以會有雙引號。
PowerDesign 在修改name的時候,code的值將跟著變動,很不方便。修改方法:PowerDesign中的選項菜單裡修改,在[Tool]-->[General
Options]->[Dialog]->[Operating modes]->[Name to Code
mirroring],這裡預設是讓名稱和代碼同步,將前面的複選框去掉就行了。
6、有關Powerdesgner資料模型設計中,屬性名稱同名問題的解決方案
PowerDesigner預設在CDM中不能存在相同名稱的實體屬性,這也是考慮到可能產生的一些如主鍵外鍵等名稱衝突問題,但當我們進行實際資料庫設計時,可能會多次使用相同資料項目(DataItem)便於理解各實體。為此需要對更改PowerDesigner相關設定。軟體預設為DataItem不能重複使用(重名),需要進行以下操作:
選擇Tools->Model Options,在Model Setting設定目錄中,將Data Item下的Unique
Code取消選中即可,系統預設將Unique Code和Allow Reuse均選中。
同時該設定均是面向特定模型的,即針對當前模型有效,若希望在其它模型中也有此命名設定,則需要重新進行設定。不過在Check
Model時,如果選擇全部Check,則依舊會報DataItem重名的錯誤資訊,這時需要我們在人為檢查確認資料項目無誤時,可以在選擇不對DataItem不檢查,各種資料類型對應匹配(這裡只給出與SQL
Server中的常用對應類型,其它DBMS可以使用類似處理)