PlantUML ER图布局调整:控制实体位置与设置元素间距
PlantUML ER图布局优化方案
控制实体摆放位置的方法
- 关联指定方向:定义实体关系时添加
up/down/left/right方向关键字,强制两个实体的相对位置,比如将Должность }|..|| Воронка改为Должность }|..|| up Воронка,即可将Воронка实体固定在Должность的上方。 - 隐藏连线对齐:无关联的实体需要对齐时,可添加
Воронка -[hidden]-> Гражданство这类隐藏连线,强制两个实体保持水平/垂直对齐关系。 - 分组锁定区域:使用
together { }代码块包裹需要排布在同一区域的实体,PlantUML渲染时不会将块内实体拆分到不同区域。
调整元素间距的方法
- 全局间距配置:在代码开头添加skinparam参数调整全局间距规则:
' 调整同层级实体的最小水平间距 skinparam nodesep 40 ' 调整不同层级实体的最小垂直间距 skinparam ranksep 60 ' 调整连线与多重度标识的距离 skinparam edgeLabelSpacing 20 ' 调整实体边框与内部文本的内边距 skinparam entity { padding 15 }
- 单条连线拉长:仅个别连线出现重叠时,可在关系定义中添加
/拉长对应连线,添加的斜杠越多连线越长,示例:Должность ||..o{ / Должность_Гражданство。
优化后示例代码
@startuml ' 基础样式设置 hide circle skinparam linetype ortho ' 间距配置 skinparam nodesep 45 skinparam ranksep 60 skinparam edgeLabelSpacing 15 skinparam entity { padding 12 } entity Воронка{ ID <<PK>> Наименование } entity Должность{ ID <<PK>> Код должности Наименование ID Воронки <<FK, UNIQUE>> } ' 字典实体分组 together { entity Гражданство{ ID <<PK>> Наименование } entity Регион{ ID <<PK>> Наименование } entity Образование{ ID <<PK>> Наименование } entity Языки{ ID <<PK>> Наименование } entity "Опыт работы"{ ID <<PK>> Наименование } entity "Тип занятости"{ ID <<PK>> Наименование } } ' 关联表分组 together { entity Похожие_должности{ ID Должности ID Похожей должности } entity Должность_Гражданство{ ID Должности <<FK>> ID Гражданства <<FK>> } entity Должность_Регион{ ID Должности <<FK>> ID Региона <<FK>> } entity Должность_Языки{ ID Должности <<FK>> ID Языка <<FK>> } entity Должность_Опыт_работы{ ID Должности <<FK>> ID Опыт работы <<FK>> } entity Должность_Тип_занятости{ ID Должности <<FK>> ID Типа занятости <<FK>> } entity Должность_Образование{ ID Должности <<FK>> ID Образования <<FK>> } } ' 带方向的关系定义 Должность }|..|| up Воронка Должность ||..|{ down Похожие_должности Должность ||..o{ right Должность_Гражданство Гражданство ||..o{ down Должность_Гражданство Должность ||..o{ right Должность_Регион Регион ||..o{ down Должность_Регион Должность ||..o{ right Должность_Образование Образование ||..o{ down Должность_Образование Должность ||..o{ right Должность_Языки Языки ||..o{ down Должность_Языки Должность ||..o{ right Должность_Опыт_работы "Опыт работы" ||..o{ down Должность_Опыт_работы Должность ||..o{ right Должность_Тип_занятости "Тип занятости" ||..o{ down Должность_Тип_занятости @enduml
内容的提问来源于stack exchange,提问作者AlexF
相关产品推荐
相关产品推荐

