第一步:在 Visio 中畫好數(shù)據(jù)庫設(shè)計的 E-R 圖
首先要面臨的問題便是,采用何種作圖類型?
答案是框圖,要注意,是“框圖”而不是“基本框圖”!
基本原則如下:
①表的表示圖形:框圖 --> 方塊 --> 框
②表字段的表示圖形:框圖 --> 方塊 --> 圓形(調(diào)整大小呈1個橢圓比較漂亮)
③表與表之間關(guān)系的表示圖形:框圖 --> 方塊 --> 菱形
④連接表與組成字段的表示圖形:工具欄 --> 繪圖工具 --> 線條工具(Ctrl + 6)
⑤連接框與菱形的標識圖形:工具欄 --> 繪圖工具 --> 線條工具(Ctrl + 6)
⑥新建實體(框)時,內(nèi)部文字的大小會變回原來的8pt,這是個很煩的問題,最佳實踐是按住Ctrl直接拖拽復(fù)制
7.總之Visio的使用不是幾句話就能說完的,還有待自己進一步摸索
接下來貼出我用Visio制作完畢的博客數(shù)據(jù)庫設(shè)計E-R圖(沒有仔細的考慮邏輯,估計有不合適的地方)
第二步:在 PowerDesigner 中根據(jù) Visio 中制作出來的E-R圖構(gòu)建 “概念對數(shù)據(jù)模型”
有幾個注意的地方,以下我會11羅列:
①兩張表中不能同時存在“文章ID”的問題:菜單欄 --> Tools --> Model Options -->Model Settings
--> Data Item --> 取消勾選 “Unique code”
②如果你足夠細心,應(yīng)該會發(fā)現(xiàn)概念數(shù)據(jù)模型和物理數(shù)據(jù)模型對應(yīng)的菜單項是不同的,
比如說只有在概念數(shù)據(jù)模型視圖中才能找到 “Unique code” 復(fù)選框,只有在物理數(shù)據(jù)模型視圖中找到Database菜單項
③還有就是在“概念數(shù)據(jù)模型”中,不需要顯式的在字段中加入外鍵字段(概念數(shù)據(jù)模型中不用去關(guān)心主外鍵),到時候由概念數(shù)據(jù)模型
生成物理數(shù)據(jù)模型的時候,會自動將所有依賴的“外鍵id”字段加入到表中來,具體情況接下來會講述~
④在構(gòu)造表與表之間的關(guān)系時,從一個表拉到另一個表,默認是“從1到多”的!
不過可以雙擊進行細致編輯,包括1對多,1對1什么的關(guān)系,還可以標明注解,使別人看起來一目了然
接下來把建立好的“概念數(shù)據(jù)模型”視圖貼上來
接下來就是用概念數(shù)據(jù)模型生成物理數(shù)據(jù)模型(由抽象的概念具體化到一種特定的數(shù)據(jù)庫類型,如Oracle,MySQL等)
菜單欄 --> Tools --> Generate Physical Data Model
下面來看一看生成的原始的“物理數(shù)據(jù)模型”:
生成的物理數(shù)據(jù)模型是不能夠直接用來生成數(shù)據(jù)庫或者.sql文件的,要進行一些加工處理(完善主鍵增長機制,重新編輯表結(jié)構(gòu))
對于oracle的物理數(shù)據(jù)模型,主鍵可以用添加sequence的方式來維護,
對于mysql的物理數(shù)據(jù)模型,主鍵可以用勾選“identity復(fù)選框”的方式來維護...
至于為什么要重新編輯數(shù)據(jù)庫表結(jié)構(gòu),看看上面的圖就行了,評論有必要保留大類ID、小類ID、文章_會員ID么?
除了評論ID作為評論表的主鍵外,還有必要保留第2個其他的主鍵么??
都沒有!那么,盡情的刪除和修改吧!不過要小心不要改錯了,^ ^!
還有“字段是否允許為空”什么的,也要在這個時候編輯好~
有幾個非常非常需要注意的地方,表字段的code名千萬不能和Oracle數(shù)據(jù)庫的保留字同名
不然后面生成的sql文件時沒辦法用的,會出現(xiàn)很多bug~
那么,到底有哪些關(guān)鍵字呢?
Oracle中的保留字可以參見select * from v$reserved_words;數(shù)據(jù)字典表中所見.
還有諸如最經(jīng)常的,date,comment,userid什么的
這次針對Oracle生成的sql腳本不能用就是因為comment我用做表名,date我用做列名了~
其實重名與否也很好觀察,打開sql腳本看雙引號就行了,如果重名的話pd會自動給該字段加上雙引號~
不過雙引號雖然是加了,卻是沒辦法正常使用的!
這次針對Oracle生成的sql腳本不能直接拿來用的第二個原因是pd在創(chuàng)建package的語句后面將 / 給丟掉了
不過也怪我對 Oracle PL/SQL 塊的掌握不熟練,竟然沒有第一時間找出原因來~
下面來看看經(jīng)我修改過的物理數(shù)據(jù)模型,完成了修改,一切都顯得那么和諧!
PowerDesigner還有個生成腳本中包含雙引號的問題需要被解決,解決方法如下:
打開Database -> Edit Current DBMS ,出現(xiàn)一個編輯界面,在右邊的框里,找到script分節(jié)點,再依次找到sql -> format 節(jié)點,下面有一個這樣的名稱的屬性:CaseSensitivityUsingQuote,把這個屬性的值設(shè)為“NO”,再看生成的script,就全部雙引號都去掉了。
聯(lián)系客服