PlantUMLでER図を描く!

How to draw ER diagram with PlantUML.

Takuo
VELTRA Engineering
8 min readDec 25, 2017

--

前回は、GitHubでER図を管理する方法を記事にしましたが、今回はPlantUMLでER図を描く方法を紹介します。(前回の記事はこちら

なぜかは知らないのですが、シーケンス図やユースケース図、クラス図などとは違い、ER図についてはPlantUMLの描き方のドキュメントが少ないです。(そもそも公式のページに記載がない)

ということで、非公式ですが、描いている中で見つけた描き方を紹介したいと思います。

エンティティ

エンティティは通常、こんな感じに描きます。あまりないと思いますが、ダブルクォーテーションで囲うことで、非文字(スペース等)を使用することもできます。非文字を使用する場合は、asを使って別名を定義してあげましょう。

エンティティのEを、別の文字に変えることもできます。

エンティティの色を変更するにはこのように描きます。グラデーションも可能ですが、使うかな?これ。

エンティティにラベルを付けることもできます。

属性

属性の頭にマークを付けることができます。主キーや外部キーにはマークを付けてあげましょう。

太字や斜体、アンダーライン等の表記も可能です。

セパレータ

主キーとそれ以外を区別するセパレータは、いくつでもいれることができます。点線や二重線のセパレータを使用することもできます。

セパレータにタイトルを付けることもできます。

リレーション

関連するエンティティをリレーションによってつなぐことができます。updown(do)等で、相対的な位置を指定することもできますが、必ず指定した通りに配置されるわけではないようです。エンティティの数が多くなると描画が難しくなるので、あまり多用しない方がいいと思います。

リレーションにラベルを付けることができます。><を使用すると、矢印として表示してくれるようです。

カーディナリティを表したい場合は、このように記述します。

パッケージ

エンティティが多くなるとER図が分かりにくくなるので、適切なパッケージに分けましょう。パッケージの形状としていくつか種類を指定できます。

パッケージ間のリレーションもかけます。でもそこじゃない感。

その他

各エンティティの色の変え方は上で紹介しましたが、そもそもデフォルトの色を変えたい場合はskinparamで指定します。entity ではなくclassとなっているのは、クラス図の仕組みをER図に流用した名残でしょうか。

何度も使用する文字列は定数として定義することができます。

メモもかけます。

いろいろな描き方を紹介しましたが、特殊な描き方を多用すると、それはそれでわかりにくくなります。また、あまり多くのエンティティをひとつに詰め込むと、やはりわかりにくくなります。適度に分割しながら、シンプルでわかりやすいER図を目指しましょう!

--

--

Takuo
VELTRA Engineering

Engineer who likes travel, simple code, and something new