Confluence에서 PlantUML을 사용하여 ER 다이어그램을 텍스트 기반으로 작성

배경



외래 키 제약이 완벽하게 작성된 환경이라면, 리버스 엔지니어링으로 자동으로 ER 다이어그램을 작성해 주는 툴은 상당히 있을까 생각합니다.
그러나 외래 키 제약 조건이 유지되지 않는 환경에서는 수동으로 관계를 결정해야 합니다.
이러한 상황에서 유용한 PlantUML을 사용하여 텍스트 기반 ER 다이어그램을 만드는 방법을 소개합니다.

사용법



Confluence 위에서 PlantUML을 사용하여 ER 다이어그램을 만드는 방법을 소개합니다.
1. 기사 쓰기 화면에서 「+」→「기타 매크로」


2. PlantUML 매크로 선택


3. "삽입"을 누르십시오.


4. ↓의 테두리가 나오므로, 이 안에 ER도 묘화용의 정보를 기입하면 OK. 콘플루를 보존하면, ER도가 완성.


템플릿


@startuml
' ER図を見やすくするための設定
' monotone color
skinparam monochrome true
' shadow off
skinparam shadowing false
' change font
skinparam defaultFontName Ricty Diminished
' hide the spot
hide circle
' avoid problems with angled crows feet
skinparam linetype ortho

' 1. table list
object table1
object table2
object table3

' 2. column list
table1 : column1_1
table1 : column1_2
table2 : column2_1
table2 : column2_2
table3 : column3_1
table3 : column3_2
table3 : column3_3

' 3. relation list
table1 }o--||  table2: (column1_1=column2_1)
table1 ||--o{ table3 : (column1_2=column3_1)

@enduml

크게 나누어 3개의 블록으로 나누어져 있으며,
- 테이블 목록
- 컬럼 목록
- 관계
각각 열거하면 OK입니다.

↓이런 느낌으로 출력됩니다.



보충적으로 JOIN의 조건을 (column1_1=column2_1)라고 하는 텍스트로 표시시키고 있습니다. (이것은 사라질 수 있습니다)

관계 변형



릴레이션의 바리에이션은↓로 모두 커버할 수 있다고 생각합니다.
N:1
Member }o--||  TPref: (mePrefID-prPrefID)
Member }|--||  TPref: (mePrefID-prPrefID)

1:N
Member ||--o{  TPref: (mePrefID-prPrefID)
Member ||--|{  TPref: (mePrefID-prPrefID)

1:1
Member ||--||  TPref: (mePrefID-prPrefID)
Member |o--||  TPref: (mePrefID-prPrefID)
Member ||--o|  TPref: (mePrefID-prPrefID)


N:N ※基本的にないはず
Member }o--o{  TPref: (mePrefID-prPrefID)
Member }|--|{  TPref: (mePrefID-prPrefID)

구문 오류시



에러가 있으면 ↓와 같은 화면이 표시되므로 에러 메시지를 참고로 디버그합니다.


요약



PlantUML을 사용하여 ER 다이어그램을 텍스트 기반으로 만드는 방법을 소개했습니다.
사쿠토 ER 그림을 텍스트 기반으로 만들고 싶을 때나 관계를 수동으로 지정해야 할 때 등에 편리 할 것 같습니다.

※ER 그림을 보기 쉽게 하기 위한 설정으로서, 몇개의 사이트를 참고로 했습니다만, URL을 잊어 버려서, 인용으로서 소개할 수 없는 것을 사과하겠습니다.

좋은 웹페이지 즐겨찾기