通過Erwin的反向工程導入實體 之二(自動爲物理模型命英文名)

在以前的帖子中說過,要整理下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將根據映射文件,自動爲物理模型命名,如下圖:


------------------------------------------------------------------------

享受分享的快樂!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章