1. 程式人生 > >使用PowerDesigner生成資料庫sql指令碼

使用PowerDesigner生成資料庫sql指令碼

開啟PD軟體:

1.新建概念模型(conceptual Data Model)

File-->New Model-->Conceptual Data Mode
或者點選工作區,右鍵-->New Model-->Conceptual Data Mode

2.開啟模型時,會有方格線,去除方格線

Tools-->Dis

3.建立表並建立關係:

各個含義如下:

但是我在建立的過程中,報錯如下:

在建立的過程中,人員表裡有主鍵Code,性別表裡也有主鍵Code,但是在建立的過程是報錯,說是Code已經被佔用了,

去除屬性名重複的方法如下:

使用PD中,CDM預設實體屬性不能重名,在CDM中唯一。可以通過設定,取消該限制。

    選擇 Tools->Model Options,取消 Data Item 組的Unique code 和 Allow reuse複選框。

    Unique:設定實體屬性是否唯一

    Allow reuse:設定實體屬性是否允許重用

注:預設使用唯一程式碼的好處是,改變屬性,其他引用該屬性的實體,都一起修改。該功能可以通過domain實現,設定屬性在同一domain中,當需要修改欄位型別的時候,修改domain一處即可。

Power <wbr>Designer <wbr>CDM <wbr>解決實體屬性不能重名問題

4.將概念模型轉換成物理模型

方法一:

操作:Tools-->GeneratePhysical Data Model

快捷鍵:ctrl+shift+p

注意:如果你的資料庫是SQL server,請一定要選擇要選擇SQL Server 2008,

進入下圖介面:(根據自己的需求切換相應的DBMS(資料庫)點選【確定】就會將概念模型轉換成物理模型).

 

??但是在生成的過程中報了一個實體屬性重複的錯誤(如下圖):

Checking data item ...
- Data Item name uniqueness
- Data Item code uniqueness
Error The following data item does not have unique code:
-> Data Item '編碼' (<Model>)
-> Data Item '編碼' (<Model>)
- Data Item not used
- Data Item used multiple times

解釋:從上面的錯誤可以看出,PD給我們說,我在檢查所有實體屬性的過程中,發現了重複的屬性,有兩個相同的屬性(Code和Name):編碼

這是因為雖然我們在概念模型中:建立實體的過程中允許實體使用相同的編碼和名稱,但是我們並沒有同時修改:在概念模型轉換為物理模型的檢查規則,我們這裡,可以去修改檢查實體的報錯規則就可以了。

解決辦法:

方法二:

General不變,Detail中將Check model去掉,就在轉換為物理模型時不再檢查實體錯誤了(當然這些錯誤是PD定義的預設規則)

 

5.物理模型如下:

6.生成帶註釋的sql

a.操作:Database-->Generate DataBase。。。,進入下圖頁面,

b、勾上以上覆選框,否則當你備註為空的時候註釋出不來;反之,如果你備註不為空那麼名稱(Name)才能作為註釋出現!!

在Options可以選擇要生存指令碼的內容,可以選擇是否建立資料庫的指令碼,選擇要生成指令碼的表



c、在selection中選擇你需要生成sql的模組,指定輸出目錄。