5分钟入门ER/Studio

文章目录

  • 前言
  • 一、创建逻辑模型
  • 二、生成SQL脚本
  • 三、常用其他操作
    • 1、Domains的使用
    • 2、生成数据库设计文档
    • 3、使用宏把Attribute name复制到Definition
  • 总结


前言

以前一直使用PowerDesigner做数据库模型设计,由于工作需要,要求使用易博龙ER/Studio做数据库模型设计。因为发现网上关于ER/Studio中文使用教程比较少,学习官方文档还需要一定的时间和门槛,故自己就想总结了一篇快速入门文档,以便来者。(如果您有一定数据库设计基础,并想深入了解ER/Studio建议您学习官方文档)

本文使用的ER/Studio版本:ER/Studio Version 8.0.2


一、创建逻辑模型

1、打开ER/Studio后,选择:File>New,打开如下界面,选择Draw a new data model。

5分钟入门ER/Studio_第1张图片
如上图:1表示新创建数据模型,2表示逆向数据库中已存在的模型,3表示导入erx文件或sql脚本生成数据模型。
2、空白处点击右键,选择insert Entity,如下图就完成实体表的添加。
5分钟入门ER/Studio_第2张图片

3、在实体表上点击右键,选择Edit Entity,编辑实体表。
5分钟入门ER/Studio_第3张图片
4、点击下图椭圆处展开,按下图红框处填写表实体的相应的属性值。
5分钟入门ER/Studio_第4张图片
5、创建关联关系
5分钟入门ER/Studio_第5张图片
如上图红框处,ER/Studio提供5种逻辑关联关系,我们经常会用到的是第二种和第三种,如上图从左到右分别为:
(1)Identifying Relationship
1对多,父实体的主键是子实体的外键,且该外键为子实体的主键。 也就是说需要提供外键给另外一张表作联合主键。
(2)non-Identifying,mandatory relationship
1对多,父实体的主键是子实体的外键,且外键不为空(强制外键) 。
(3)non-Identifying,optional relationship
1对多,父实体的主键是子实体的外键,且外键可为空(可选外键)。
(4)one-to-to relationship
1对1,父实体的主键是子实体的外键,且外键可为空。
(5)Non-specific Relationship
多对多,父实体和子实体是多对多的关系。 (多对多的关系建议引入中间表)

6、下图为实体创建第三种关系non-Identifying,optional relationship。
5分钟入门ER/Studio_第6张图片

二、生成SQL脚本

1、首先生成物理模型,才能生成SQL脚本,如下图:选择Model>Generate Physical Model
5分钟入门ER/Studio_第7张图片
2、这里目标数据库选择PostgreSQl 8.0,当然你也可以选择Mysql、Oracle、DB2、Sql Server等数据库平台,以便生成对应的SQL脚本。

5分钟入门ER/Studio_第8张图片
3、如下图,选中生成的物理模型,然后选择:Database>Generate Database
5分钟入门ER/Studio_第9张图片
4、按照下图操作,最后点击finish即完成sql脚本的生成。(按下图操作生成表注释、字段注释)
5分钟入门ER/Studio_第10张图片
5分钟入门ER/Studio_第11张图片
5、生成最终脚本如下图。
5分钟入门ER/Studio_第12张图片

三、常用其他操作

至此,你已经学会使用ER/Studio设计数据库模型了。如果继续往下看,你花费的时间将超过5分钟。

1、Domains的使用

Domains是用于建立标准,重用属性/列时使用。我们在设计数据库时往往会需要定义几个标准字段,例如主键ID,创建时间,如果将他们创建为Domains,那么无论在哪里绑定都会是统一的类型、规则、约束等。这既便于统一标准也便于进行修改。
1、如下图,左下角切换至Data Dictionary,然后Domains上右键,选择New Domains
5分钟入门ER/Studio_第13张图片
2、按下图填写对应的属性信息。
5分钟入门ER/Studio_第14张图片
3、在实体表中进行绑定
5分钟入门ER/Studio_第15张图片

2、生成数据库设计文档

1、如下图,选择Tools>Generate Reports
5分钟入门ER/Studio_第16张图片
2、按照下图进行操作。
5分钟入门ER/Studio_第17张图片
5分钟入门ER/Studio_第18张图片
5分钟入门ER/Studio_第19张图片
3、生成word文档如下
5分钟入门ER/Studio_第20张图片

3、使用宏把Attribute name复制到Definition

1、把以下代码保存为xx.bas文件放到ER/Studio安装目录下的Macros的文件夹下,ER/Studio就可以自动加载到Macros选项卡中。ER/Studio Version 8.0.2默认目录为:C:\ProgramData\Embarcadero\ERStudio_8.0\Macros

Dim EntCount As Integer
Dim ColCount As Integer
Dim MyDiagram As Diagram
Dim MyModel As Model
Dim MyEntity As Entity
Dim ColArray() As String
Function getColumns(TableName As String )
Dim Indx As Integer
Dim count As Integer
count = 1
Indx = 0
Set MyEntity = MyModel.Entities.Item(TableName)
ColCount = MyEntity.Attributes.Count
ReDim ColArray(0 To ColCount) As String
For count=1 To ColCount
  For Each MyAttribute In MyEntity.Attributes
    If MyAttribute.SequenceNumber = count Then
      If MyModel.Logical = True Then
        If MyAttribute.HasLogicalRoleName = True Then
          ColArray(Indx) = MyAttribute.LogicalRoleName
      Else
        ColArray(Indx) = MyAttribute.AttributeName
      End If
    Else
      If MyAttribute.HasRoleName = True Then
        ColArray(Indx) = MyAttribute.RoleName
      Else
        ColArray(Indx) = MyAttribute.ColumnName
      End If
    End If
    If MyAttribute.Definition="" Then
    	MyAttribute.Definition = ColArray(Indx)
    End If
    Indx= Indx +1
  End If
  Next MyAttribute
  Next count
End Function

Sub Main
Debug.Clear
Set MyDiagram = DiagramManager.ActiveDiagram
Set MyModel = MyDiagram.ActiveModel
Dim Indx As Integer
Indx = 0
EntCount = MyModel.Entities.Count - 1
ReDim TableArray(0 To EntCount) As String
For Each MyEntity In MyModel.Entities
  If MyModel.Logical = True Then
    TableArray(Indx) = MyEntity.EntityName
  Else
    TableArray(Indx) = MyEntity.TableName
  End If
  MyEntity.Definition = TableArray(Indx)
  getColumns(TableArray(Indx))
  Indx = Indx +1
Next MyEntity

End Sub

2、打开ER/Studio如下图,选择Macro Shortcuts>NameToDefinition
5分钟入门ER/Studio_第21张图片

总结

判别一个关系是Non-Identifying还是Identifying只要区分子实体的主键,看是否需要父实体的外键来共同作为主键,需要则为Identifying,如果子实体自己的主键就可唯一标识则它为Non-Identifying。

你可能感兴趣的:(ER/Studio)