Based on the Information Engineering notation. This is an extension to the existing Class Diagram. This extension adds: - Additional relations for the Information Engineering notation.
- An
entity alias that maps to the class diagram class . - An additional visibility modifier
* to identify mandatory attributes. Otherwise, the syntax for drawing diagrams is the same as for class diagrams. All other features of class diagrams are also supported. 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
|
🎉 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
| Currently the crows feet do not look very good when the relationship is drawn at an angle to the entity. This can be avoided by using the linetype ortho skinparam. | |