转载出处:https://blog.csdn.net/huaxin520/article/details/7799046
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将根据映射文件,自动为物理模型命名,如下图: