在数据模型设计过程中,如果实体、表、属性和字段的命名各搞一套,后续生成DDL脚本、进行模型评审,以及交付给开发人员时,都会带来不少麻烦。使用erwin时,统一命名规范主要靠Naming Standards和Model Naming Options这两块功能,它们可以集中控制逻辑名、物理名和缩写规则,而词汇表则用来管理常用单词、缩写和备用缩写,这些规则在从逻辑模型转换到物理模型阶段就能自动生效。
一、erwin怎么设置命名标准
命名标准不能只靠口头约定或文档说明。一个比较稳妥的思路是先建好统一的词汇表,再配置对象映射规则,最后用模板把整套规范复用到不同项目中,避免重复劳动。
1、建立命名标准对象
在模型里找到【Naming Standards】区域,新建一个命名标准对象,然后打开它的属性窗口,把常用的业务用词、标准缩写和替代缩写逐一填进Glossary里。一个完整的命名标准文件通常包含Word、Abbreviation、Alternate Abbreviation、Prime、Modifier这些字段,完成之后可以保存为.nsm文件,方便以后在不同模型间复用。
2、启用命名标准
在命名标准的属性设置中,确保【Is Active】选项已经勾上。如果目标是从逻辑名称自动生成物理名称,那就要重点配置Logical to Physical这一方向的映射;要是项目需要从数据库反向工程回到逻辑模型,也可以根据版本支持情况,去调整Physical to Logical的转换。相关的帮助资料也提到,必须勾选Is Active,并在Model Naming Options里为相应对象选择使用Glossary,这些设置才会真正启用。
3、配置模型命名选项
顺着【Actions】→【Model Naming Options】路径进入到设置窗口,在【Name Mapping】页面里,为Entity to Table、Attribute to Column、Domain等对象类型勾选【Use Glossary】,然后再选定缩写类型。erwin的官方说明中也强调,需要命名转换的对象都要在Name Mapping页勾上Use Glossary,否则只是建了词汇表也没效果。
4、设置特殊字符和重复名字的处理方式
在命名选项里统一设定大小写规则、前后缀、特殊字符的替换策略以及重复名称的自动处理。比如将空格统一替换成下划线,表名全部改为大写,碰到重名时让系统自动重命名。IBM关于erwin物理模型转换的步骤中也提到,可以把Special Characters设成Replace,并在Duplicate Names页开启自动重命名功能,这样就能减少人工修正的工作量。
二、erwin命名规则不统一怎么检查
发现命名不统一的时候,不要一个一个去改字段。更有效的做法是先判断是命名标准压根没有生效,还是物理名称已经被手工覆盖掉了,然后再针对性地去修。
1、检查是否绑定了正确的标准
打开【Model Naming Options】,确认当前模型关联的是正确的命名标准或模板。如果是从老版本模型升级上来的,以前挂过的NSM文件很可能不会自动导入,需要手工导入并重新绑定,否则标准并不会自动生效。
2、检查Use Glossary有没有正确勾选
只建好词汇表,并不代表所有对象会自动用它。实体、属性、表、列、关系这些不同类型的对象,要分别去检查Use Glossary是否已经被勾上。只要某一类对象没有启用,就会出现表名虽然标准化了,但字段名依旧不统一的局面。
3、检查物理名称是不是被人手改过
从逻辑名转换到物理名,通常依赖名称的继承关系。一旦物理名称被人在属性里手动修改过,这种继承就会被切断,后续哪怕命名标准更新了,这个对象的物理名也不会再跟着变。碰到这种情况,需要重置它的override属性,重新让它从逻辑名继承。
4、用报表或导出清单来复核
把表名、列名、逻辑名和物理名一起导出成清单,按照前缀、后缀、大小写、下划线以及缩写规则去筛选。一发现异常就回头修正命名标准里的规则,再批量重新应用到模型上,而不是只改个别名字就完事。
三、erwin命名标准怎样长期维护
命名标准不是一次性工作,业务词汇、系统模块和数据库平台发生变化之后,词汇表也需要一直维护,否则时间一长还会乱掉。
1、统一模板的来源
建议建立一个内嵌命名标准的模型模板,让不同的数据库模板都从这同一套基础标准里去继承。这样新建项目或模型时就不用频繁重复配置,erwin的一些资料中也提到可以通过模板和模型加载时的同步机制来集中管理命名标准。
2、定期给词汇表补充新内容
新的业务用词、缩写上的冲突,或者不再推荐的写法,都应该统一登记到Glossary里面,不要让项目成员各自临时去造缩写,否则同一个意思可能会在数据库里出现好几个不同写法的字段名。
3、在评审前固定检查清单
每次模型评审之前,对照一张检查清单,依次核对待表名、字段名、主键外键名、索引名和关系名。一旦发现命名问题就先集中修正,再生成DDL,不要等到数据库已经建好再去补命名标准,那样成本会高很多。
总结
在erwin里设置命名标准,首先要建立Naming Standards和Glossary,然后前往【Actions】→【Model Naming Options】当中,给需要命名转换的对象勾选Use Glossary,同时对特殊字符、大小写和重复名规则做好统一配置。当发现命名不统一时,重点排查标准绑定是否正确、对象有没有启用词汇表、物理名是否被手工覆盖。只有把命名标准固化到模型模板里并定期维护,才能保证多个项目长期保持一致。
