在以前的帖子中說過,要整理下ERwin由邏輯模型到物理模型的映射,一直沒時間,今天終於整理了,如下:
項目的建模工具,用的較多的有PD、Rose,我學生時代,就沒聽說過ERwin,這個工具也是進入項目組之後才瞭解到的。ERwin中分爲邏輯模型和物理模型兩種。在創建邏輯模型時,我們都是通過中文設計,這樣就更直觀的顯示模型的作用;物理模型,是直接對數據庫進行關聯,對數據庫進行操作,因此在給物理模型命名時,需要使用英文(不嫌麻煩、不嫌累,用中文也可以)。問題隨之而來,如何將邏輯層的中文名,通過映射文件,直接生成物理層的英文名。對,需要映射文件,而且不是一個,是兩個,一個定義表名,一個定義字段名。下面,將解釋具體如何實現。
1)、打開ERwin,創建一個邏輯模型(可以使用我前面介紹的方法,通過腳本導入SQL建表語句,來批量創建邏輯模型),如下圖:
2)、點擊菜單欄'Tool'->'Names',選擇'Model Naming Options',將彈出新對話框,選擇‘Name Mapping’ 選項卡,
在'Entity to Table ' 和 'Attribute to Column',對應的Macro Name 中分別將 TXT1、TXT2的信息考入
TXT1:%Decl(test,_)%=(test,%Lookup(%substitute(%currentfile,.erwin,_TABLE.txt),%EntityName()))%If(%==(%Substr(%:test,1,1),_){%Substr(%:test,2)}%else{%:test}
TXT2:%Decl(test,_)%=(test,%Lookup(%substitute(%currentfile,.erwin,_FIELD.txt),%AttName))%If(%==(%Substr(%:test,1,1),_)){%Substr(%:test,2)}%else{%:test}
如下圖:
注,在‘physical’選項卡中,case選項中包括 None、UPPER、lower、initial四種,具體含義爲:如圖
None:映射信息不表
UPPER:將映射字符全部轉爲大寫
lower:將映射字符全部轉爲小寫
initial:將映射字符的首字母轉爲大寫
3)、接下來,首先要保持ERWin模型,保持文件名爲XXX.erwin。Next,要新建兩個txt映射文件,文件命名有約束,表名映射映射文件名爲XXX_TABLE.txt(XXX爲ERwin文件名),字段級文件映射文件名爲XXX_FIELD.txt,並且要將這兩個文件和XXX.erwin放在同一目錄下。
XXX_TABLE.txt 文件內容爲:
客戶信息基表,CUST_INFO_TBL
XXX_FIELD.txt 文件內容爲:
客戶編號,CUST_ID
客戶名稱,CUST_NAME
年齡,AGE
性別,SEx
生日,BIRTH_DT
郵箱,EMAIL
注:ERwin根據映射文件,爲物理模型命名時,是按照映射文件中映射先後順序依次映射的,因此,要根據中文映射字符的長度減序排列。這點很重要,讀者要在實際操作中體會這句話的含義。
4)、按照上述步驟設置完後,關閉ERwin模型,重新啓動,因爲,ERwin只在啓動時讀取映射文件,以後,修改了映射文件內容後,都要重啓ERwin。點擊‘Physical’,進入物理模型,ERwin將根據映射文件,自動爲物理模型命名,如下圖:
------------------------------------------------------------------------
享受分享的快樂!