如何使用powerdesigner創建數據庫
工具:
Sybase PowerDesigner 15.1
Microsoft SQL Server 2005
第一步概要設計:
打開PowerDesigner軟件,設計“概念數據模型”(ConceptualData Model):
點擊workspace 右鍵---》New—>Conceptual DataModel,
彈出如下界面:
設計表、表結構:
在設計屬性(字段)的時候,三個字母(M、P、D)分別表示:
M:是否為空;(√表示不允許為空)
P:是否為主鍵;
D:是否在該軟件的視圖中顯示
第二步:物理設計
將“概念數據模型”設計的表轉換為“物理數據模型”(PhysicalData Model),實際上是從“概要設計”轉換為“詳細設計”,即對表的具體實現。
將概要設計模板轉換為物理設計
選擇“Tools”-->“Generate Physical DataModel…”即可。
然后選擇你的DBMS.
點擊“確定”按鈕以后,就產生了對應“SQL Server 200...工具:
Sybase PowerDesigner 15.1
Microsoft SQL Server 2005
第一步概要設計:
打開PowerDesigner軟件,設計“概念數據模型”(ConceptualData Model):
點擊workspace 右鍵---》New—>Conceptual DataModel,
彈出如下界面:
設計表、表結構:
在設計屬性(字段)的時候,三個字母(M、P、D)分別表示:
M:是否為空;(√表示不允許為空)
P:是否為主鍵;
D:是否在該軟件的視圖中顯示
第二步:物理設計
將“概念數據模型”設計的表轉換為“物理數據模型”(PhysicalData Model),實際上是從“概要設計”轉換為“詳細設計”,即對表的具體實現。
將概要設計模板轉換為物理設計
選擇“Tools”-->“Generate Physical DataModel…”即可。
然后選擇你的DBMS.
點擊“確定”按鈕以后,就產生了對應“SQL Server 2005”數據庫的表、屬性、關系的具體實現。
這時就會有一個物理設計的模板出現,將你在概要設計時的實體都轉換成具體的表。
第三步:在SQL Server2005中手動創建數據庫(也可以用SQL創建庫,pd可以將我們的表設計都轉換成SQL)
需手動在SQL SERVER2005中創建您的數據!如:“Students“,此過程省略…
第四步:在數據源ODBC中配置用戶數據源
第五步:在SQL Server2005中自動創建表結構
首先:根據“物理數據模型”(Physical Data Model)自動建立相應的SQL語句:
其次:執行其創建的SQL語句文件,將數據表結構自動創建到SQL Server 2005數據庫中:
完成以上步驟后,刷新SQL Server 2005數據,將會看到你所創建的相關表結構。
另外生成單張表SQL語句可以:
在物理設計模板中,選擇表--》右鍵—》SQL Perview…
生成SQL創建庫和表,我喜歡懶人式,或者說拿給客戶時,客戶用的爽。。。
建立表的主外鍵關系:
使用PowerDesigner物理模型為建的關系表添加外鍵,有個原則就是主表的主鍵名稱必須和副表的外鍵名稱一致。
測試(僅測試,不含技術)
1.建主表user 2.建副表department
uid int primarykey did int primary key
namevarchar(32) uid int
2.對著模型右擊New->Reference
parent表為user表,child表為department
這樣就建立了關系,外建也自動建立了。
關于表關系的建立,本人也存疑,但有三種思路:
1、概要設計時設計好關系。(個人傾向于這種方式,有時間嘗試)
2、物理設計時設計好關系(筆者使用此方法,若表很多,關系復雜,此階段設計關系會很痛苦。偶深受其害!)
3、生產數據庫后,DBMS中建立關系(這種方式是筆者突發奇想,仔細思考,不建議采用這種方式,如果使用T-SQL重構數據庫,又得重建關系)
仔細思考過后,個人認為概要設計時,設計實體、實體必要屬性、實體與實體關系,然后在數據庫物理設計時詳細設計表屬性等內容。
求助,關于MFC的屬性表單的問題
第一步:新建MFC工程,插入資源----屬性頁資源IDD_PROPPAGE(需要多少頁,就插入多少屬性頁,這里我們需要三頁)
第二步:為每一頁屬性頁添加類(CProp1,CProp2,CProp3)
為某一個控件、對話框、屬性頁或者窗口添加類的意義目的是:
{
當我們利用MFC繪制好對話框、控件等的時候,這些個對話框、控件的繪制信息就會產生并被存儲,
我們為相關對話框、控件添加類,就是利用這個繪制信息生成類,這個類就相當于對話框或者控件的
模板,我們可以利用這個類,生成新的與模板一樣的對話框或控件。
}
第三步:利用Class Wizard創建一個新類,這個類派生自CPropertySheet,我們為新類取名為CProperSheet,這個新類
所生成的對象就是一個屬性表單。
第四步:既然這個新類CProperSheet所生成的對象就是一個屬性表單,那么它就就應該有成員屬性頁。所以我們應該為
CProperSheet添加代表屬性頁的成員變量。還要在CProperSheet的構造函數中初始化基類。代碼如下:
class CProperSheet :
public CPropertySheet
{
private:
CProp1 m_page1;
CProp2 m_page2;
CProp3 m_page3;
public:
CProperSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL,
UINT iSelectPage = 0);
virtual ~CProperSheet();
};
第五步:第四步只是添加了成員變量,方便類管理,但并沒有將屬性頁加入屬性表單,要完成這個操作我們還必須在CProperSheet
的構造函數中實現。代碼如下:
CProperSheet::CProperSheet(LPCTSTR pszCaption, CWnd* pParentWnd ,
UINT iSelectPage )
:CPropertySheet(pszCaption, pParentWnd,iSelectPage)
{
AddPage(&m_page1);//添加屬性頁一
AddPage(&m_page2);//添加屬性頁二
AddPage(&m_page3);//添加屬性頁三
}
第六步:整個屬性表單類的制作已經完成,下面就可以開始生成屬性表單對象了:
void CMFCApplication1Dlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
CProperSheet proSheet(_T(恭喜學會了屬性表單));
proSheet.DoModal();//創建模式對話框
}
我們都知道,當我們關閉模式對話框時,程序才會執行后面的代碼。那么我們怎么判斷是點擊對話框中的那一個按鈕來退出模式對話框的呢?
答案是DOModal是有返回值的。
