23
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PlantUMLでER図を書く

Posted at

PlantUMLで以下のようなER図を書いたらすごく便利でした!
image.png

PlantUMlを使うメリットは以下の通り。

  • 記述方法覚えてしまえば、編集がすごい楽。
  • VSCode上で記述&プレビュー表示できる
  • Gitでソースコード管理できる
  • ER図だけじゃなく、シーケンス図やクラス図も作成できる

修正すると、すぐにプレビューに反映されます(動画上はペーストしてます)
Image from Gyazo

今回作成したER図の書き方を解説します。
VSCodeへのPlantUMLインストール方法は他の記事にお任せします。

テーブルの作成方法

シンプルに書くだけなら以下のような記述で書くことができます。
{}の中にカラム名を書いていきます。

entity users  {
  id 
  --
  name 
  age
  birthplace
  comment
}

image.png

罫線

カラムとカラムの間に以下のように記述することで罫線がひけます。

記述方法 罫線
.. 破線
-- ノーマル
__ 太線
== 二重線
entity users  {
  id 
  --
  name
  __
  age
  ..
  birthplace
  ==
  comment
}

image.png

テーブルの説明を記載

テーブル名の後に as "users\nユーザー"といったように記述することで、テーブルの説明を記載することができます。
改行コードも使用できます。

entity users as "users\nユーザー" 
ファイル名

修飾子

カラム名の前に記号を入力することで、修飾子をつけることができます。

entity users  {
 + id 
 --
 - name 
 ~ age
 # birthplace
 * comment
}

image.png

リレーション

テーブルとテーブルのリレーションも簡単に実現できます。

記述方法 意味
|o--
0か1
||-- 1のみ
}o-- 0以上
}|--
1以上
Entity01 }|-r-|| Entity02
Entity01 }o.l.o| Entity04
Entity01 ||-u-o{ Entity06
Entity01 |o-d-|| Entity08

image.png

配置を整える

PlantUMLは自動でER図を作成してくれるのが魅力ですが、適当にリレーションを組むと図のようにあまり綺麗じゃないことがあります。

image.png

-r--u- と記述することで、リレーションするテーブルの位置を指定することができます。

記述方法 指定できる方向
l 左(left)
r 右(right)
u 上(up)
d 下(down)
Entity01 }|.r.|| Entity02
Entity01 }o.l.o| Entity04
Entity01 ||-u-o{ Entity06
Entity01 |o-d-|| Entity08

image.png

最後に

これまでの文法を使用して書くと以下のようになります!


@startuml erd
entity users as "users\nユーザー" {
  id [PK]
  --
  name   string(20) [ユーザー名]
  ..
  age int(3) [年齢]
  ..
  birthplace   int(2) [出身地]
  ..
  comment   (200) [コメント]
}

entity jobs as "jobs\n職業" {
  + <b>id</b> [PK]
  ..
  <b>name</b>   string(40) [職業名]
}

entity areas as "areas\nエリア" {
  + <b>id</b> [PK]
  ..
  <b>name</b>   string(40) [エリア名]
}

entity users_jobs as "users_jobs\nユーザー職業" {
  + <b>id</b> [PK]
  ..
  <b>user_id</b> int(8) 
  ..
  <b>jobs_id</b> int (8)
}

users ||-l-|{ users_jobs
users_jobs }|-l-|| jobs
users }|-r-|| areas

@enduml

image.png

初めはコードで記述するの面倒だと思っていましたけど、非常に便利でした!
ぜひPlantUML使用してみてください!

参考

23
19
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?