ER/Studio入门操作和配置生成SQL注释(Attribute name)

Posted 地表最强菜鸡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ER/Studio入门操作和配置生成SQL注释(Attribute name)相关的知识,希望对你有一定的参考价值。

一、创建逻辑模型

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


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

3、在实体表上点击右键,选择Edit Entity,编辑实体表。

4、点击下图椭圆处展开,按下图红框处填写表实体的相应的属性值。

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。

二、生成SQL脚本

1、首先生成物理模型,才能生成SQL脚本,如下图:选择Model>Generate Physical Model

2、这里目标数据库选择PostgreSQl 8.0,当然你也可以选择mysql、Oracle、DB2、Sql Server等数据库平台,以便生成对应的SQL脚本。


3、如下图,选中生成的物理模型,然后选择:Database>Generate Database

4、按照下图操作,最后点击finish即完成sql脚本的生成。(按下图操作生成表注释、字段注释)


5、生成最终脚本如下图。

三、常用其他操作

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

1、Domains的使用

Domains是用于建立标准,重用属性/列时使用。我们在设计数据库时往往会需要定义几个标准字段,例如主键ID,创建时间,如果将他们创建为Domains,那么无论在哪里绑定都会是统一的类型、规则、约束等。这既便于统一标准也便于进行修改。
1、如下图,左下角切换至Data Dictionary,然后Domains上右键,选择New Domains

2、按下图填写对应的属性信息。

3、在实体表中进行绑定

2、生成数据库设计文档

1、如下图,选择Tools>Generate Reports

2、按照下图进行操作。

3、生成word文档如下

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

1、把以下代码保存为 NameToDefinition.bas文件放到ER/Studio安装目录下的Macros的文件夹下,ER/Studio就可以自动加载到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

总结

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

以上是关于ER/Studio入门操作和配置生成SQL注释(Attribute name)的主要内容,如果未能解决你的问题,请参考以下文章

打开powerDesigner时,创建table对应的自动生成sql语句没有注释

数据库复习总结-SQL语句入门(脚本命令)

Springboot + MyBatis入门培训 2 增改删除与查询 in like foreach操作

用doxygen风格注释代码生成文档

sql入门

快速入门和查询Python