PlantUML——实体关系图

PlantUML实体关系图

1、基本结构

js 复制代码
@startuml
entity 用户 {
  id : INT <<PK>>
  name : VARCHAR
}

entity 订单 {
  order_id : INT <<PK>>
  user_id : INT <<FK>>
}

用户 ||--o{ 订单 : "拥有"
@enduml

2、定义实体(Entity)

**1. 简单实体 **

js 复制代码
@startuml
entity 用户 {}
@enduml

2. 带字段的实体

js 复制代码
@startuml
entity 用户 {
  id : INT
  name : VARCHAR(50)
  age : INT
}
@enduml

3. 主键 / 外键标记(约定俗成)

js 复制代码
@startuml
entity 用户 {
  id : INT <<PK>>
  name : VARCHAR
}

entity 订单 {
  order_id : INT <<PK>>
  user_id : INT <<FK>>
}
@enduml

3、关系语法

1. 基本格式

js 复制代码
左实体 基数 -- 基数 右实体 : "关系说明"

2. 基数符号含义

符号 含义
` o--`
`
}o-- 零或多
`} --`
-- 连线
.. 虚线

3. 常见关系示例

一对多(1:N)

js 复制代码
@startuml
用户 ||--o{ 订单 : "下"
@enduml

一对一(1:1)

js 复制代码
@startuml
用户 ||--|| 用户详情 : "对应"
@enduml

多对多(N:N,通常显示中间表)

js 复制代码
@startuml
entity 选课 {
  student_id <<FK>>
  course_id <<FK>>
}
学生 }o--|| 选课 : ""
课程 ||--o{ 选课 : ""
@enduml

4、属性类型与注释

1. 字段类型

js 复制代码
@startuml
price : DECIMAL(10,2)
created_at : DATETIME
@enduml

2. 备注

js 复制代码
@startuml
entity 订单 {
  id : INT <<PK>>
}

NOTE right of 订单 : 订单主表
@enduml

5、显示控制(美化)

1. 隐藏多余元素

js 复制代码
@startuml
hide circle
hide methods
@enduml

** 2. 设置方向**

js 复制代码
left to right direction
' 或 top to bottom direction

6、完整示例

js 复制代码
@startuml
left to right direction
hide circle

entity 用户 {
  id : INT <<PK>>
  name : VARCHAR
  邮箱 : VARCHAR
}

entity 订单 {
  order_id : INT <<PK>>
  user_id : INT <<FK>>
  amount : DECIMAL
}

用户 ||--o{ 订单 : "拥有"
@enduml
js 复制代码
@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
}
e01 ||..o{ e02
e01 |o..o{ e03
@enduml
相关推荐
rolt5 天前
PlantUML+EA描述《分析模式》第6章存货和会计(5)
架构师·uml·plantuml
rolt9 天前
PlantUML+EA描述《分析模式》第6章存货和会计(6)
架构师·uml·plantuml
lipengxs2 个月前
写 README/技术方案时被 Ai 生成的 PlantUml/Mermaid 折腾烦了,做了个 预览小工具
ai·预览·plantuml·设计图
吴声子夜歌2 个月前
PlantUML——思维导图
思维导图·plantuml
吴声子夜歌2 个月前
PlantUML——通用命令
plantuml
吴声子夜歌2 个月前
PlantUML——部署图
plantuml·部署图
吴声子夜歌2 个月前
PlantUML——活动图新语法
plantuml·活动图
吴声子夜歌2 个月前
PlantUML——组件图
plantuml·组件图
吴声子夜歌2 个月前
PlantUML——定时图
plantuml·定时图