很多人用erwin画模型时,前面的问题不是不会拖实体,而是一开始模型类型就没选清。因为erwin支持直接新建Logical、Physical和Logical/Physical三种模型,后面你是继续在同一模型里切换视图,还是单独把逻辑模型派生成物理模型,走的入口并不一样。官方帮助也明确说明,逻辑模型既可以独立创建,也可以和物理模型一起存在于同一个逻辑/物理模型里。
一、erwin怎么做逻辑模型
先不要一打开软件就直接画表。更稳的做法,是先把模型类型和目标数据库环境定下来,再开始搭实体、属性和关系。官方帮助写得很清楚,新建模型的正式入口是【File】【New Model】,然后在新建窗口里选择【Logical】、【Physical】或【Logical/Physical】,再选目标数据库和版本号,最后确定模板。
1、先从【File】【New Model】进入
打开新建窗口以后,先把模型类型选成【Logical】。如果你确定后面还要在同一份模型里同时维护逻辑层和物理层,也可以直接选【Logical/Physical】。官方说明已经把这两种路径分开列出来。
2、把目标数据库和版本先选好
即使你现在主要做逻辑模型,官方新建流程里仍然要求先选择target database和version。这样做的意义是,后面你转到物理层时,数据库相关对象和规则会更容易接上。
3、逻辑层先建实体、属性和关系
官方关于逻辑模型的说明提到,逻辑模型用来承接业务规则和需求,它可以独立存在,也可以和物理层相关联。所以这一层更适合先把实体关系、主业务属性和规范命名搭清楚,而不是一开始就急着写物理字段细节。
4、如果建的是逻辑/物理一体模型,后面可直接切换视图
官方帮助明确说明,在逻辑/物理模型里,可以通过【Model】菜单切换到【Logical Model】或【Physical Model】视图。也就是说,如果你一开始选的是【Logical/Physical】,后面不一定要再单独新建一份物理模型。
二、erwin逻辑模型怎么转换成物理模型
这一步最容易做反。很多人以为逻辑模型转物理模型,只是把视图切到物理层就完了。实际上要先分清你现在手里的是独立Logical模型,还是Logical/Physical模型。前者更适合走派生流程,后者更适合直接切视图继续补物理信息。官方文档把这两条路都写得很清楚。
1、独立逻辑模型优先用【Derive New Model】
官方帮助说明,派生模型要走【Actions】【Design Layers】【Derive New Model】,或者在项目里对源模型执行【DL-Derive】。这个向导就是专门用来从一个设计层过渡到另一个设计层的。
2、在向导里把New Model Type选成【Physical】
官方文档在派生目标模型页面明确写到,向导里可以选择新的模型类型,也就是Logical、Physical或Logical/Physical。你如果是从独立逻辑模型转成物理模型,这里就该选【Physical】。
3、物理模型可以按目标数据库继续定制
官方说明提到,从逻辑模型派生出的物理模型可以按目标数据库和版本继续定制,也可以配合命名标准使用。也就是说,逻辑转物理不是简单复制一份图,而是把逻辑对象继续落到具体数据库实现层。
4、如果本来就是逻辑/物理一体模型,直接切到【Physical Model】
如果你一开始创建的是【Logical/Physical】模型,官方给出的做法就是在【Model】菜单切到【Physical Model】视图。切过去以后,再继续补表、列、物理属性和数据库实现细节。
三、erwin逻辑模型转物理模型前先检查什么
真正容易返工的,往往不是派生命令本身,而是转换前逻辑层没整理干净。官方帮助提到,逻辑层和物理层既可以关联存在,也允许某些对象只存在于逻辑层或物理层;同时,从逻辑模型还可以派生出多个面向不同目标服务器的物理模型。换句话说,转换前先把“哪些对象应该下沉到物理层”“目标数据库是哪一个”“后面是一份物理模型还是多份物理模型”这几件事先定清,比转完再删改更稳。
1、先检查哪些对象只保留在逻辑层
官方说明允许把部分对象标成logical only,这些对象不会出现在对应物理模型里。实际操作时,先把纯业务概念和真正要落库的对象分开,后面物理层会清爽很多。
2、再检查目标数据库是不是已经定死
因为物理模型是面向具体target server的。数据库类型和版本没先想清,后面即使成功派生,也还要回头重配。
3、最后判断是直接切视图还是单独派生
如果只是同一份模型里继续深化,实现上更适合一开始就建【Logical/Physical】;如果你需要一份逻辑模型对应多份物理模型,官方说明里明确支持从一个逻辑模型派生出多个面向不同目标服务器的物理模型,这时就更适合走【Derive New Model】。
总结
erwin怎么做逻辑模型,关键不是先画什么,而是先把模型类型选清。erwin逻辑模型怎么转换成物理模型,重点也不是一律切视图,而是先分清当前是独立逻辑模型还是逻辑/物理一体模型,再决定是用【Derive New Model】单独派生,还是直接切到【Physical Model】继续完善。顺着这个顺序往下做,逻辑层和物理层都会更容易收住。
