Entity Relationship Diagram

Основана на нотации Information Engineering.

Является расширением существующей диаграммы классов. Это расширение добавляет:

  • Дополнительные отношения для нотации Information Engineering.
  • Псевдоним entity, который сопоставляется с диаграммой классов class.
  • Дополнительный модификатор видимости * для идентификации обязательных атрибутов.

В остальном синтаксис построения диаграмм такой же, как и для диаграмм классов. Все остальные возможности диаграмм классов также поддерживаются.

Information Engineering Relations

Type Symbol
Zero or One |o--
Exactly One ||--
Zero or Many }o--
One or Many }|--

Examples:

🎉 Copied!

@startuml
Entity01 }|..|| Entity02
Entity03 }o..o| Entity04
Entity05 ||--o{ Entity06
Entity07 |o--|| Entity08
@enduml

Entities

🎉 Copied!

@startuml
entity Entity01 {
  * identifying_attribute
  --
  * mandatory_attribute
  optional_attribute
}
@enduml

Again, this is the normal class diagram syntax (aside from use of entity instead of class). Anything that you can do in a class diagram can be done here.

The * visibility modifier can be used to identify mandatory attributes. A space can be used after the modifier character to avoid conflicts with the creole bold:

🎉 Copied!

@startuml
entity Entity01 {
   optional attribute
   **optional bold attribute**
   * **mandatory bold attribute**
}
@enduml

Полный пример

🎉 Copied!

@startuml

' hide the spot
' hide circle

' avoid problems with angled crows feet
skinparam linetype ortho

entity "Entity01" as e01 {
  *e1_id : number <<generated>>
  --
  *name : text
  description : text
}

entity "Entity02" as e02 {
  *e2_id : number <<generated>>
  --
  *e1_id : number <<FK>>
  other_details : text
}

entity "Entity03" as e03 {
  *e3_id : number <<generated>>
  --
  e1_id : number <<FK>>
  other_details : text
}

entity "Entity04" as e04 {
  *e4_id : number <<generated>>
  --
  e1_id : number <<FK>>
  other_details : text
}

e01 ||..o{ e02
e01 |o..o{ e03
e01 |o..o{ e04

@enduml

В настоящее время вороньи лапки выглядят не очень хорошо, когда отношения нарисованы под углом к сущности. Этого можно избежать, используя параметр linetype ortho skinparam.

WARNING
 This translation need to be updated. 
WARNING


Privacy Policy      Advertise