通过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将根据映射文件,自动为物理模型命名,如下图:


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

享受分享的快乐!

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