dbdiagram.io を使ってコードベースで手軽に ER 図を作成する
最近 ER 図を書く機会があって、その際に使ってみた dbdiagram.io がとても良いツールだったので紹介します。
dbdiagram.ioとは?
dbdiagram.io は、ブラウザ上で手軽にデータベースの ER 図を作れるツールです。
とても直感的で分かりやすい記法で、テーブルの構成やリレーションを定義できます。
作った ER 図は PDF や PNG、MySQL, PostgreSQL など各種形式でエクスポートが可能です。そのほか、MySQL や PostgreSQL、Rails の schema.rb から ER 図を作成する import 機能もあります。

価格
通常利用は無料です。有料にすると様々な拡張機能が使えます。
※ この記事は無料版での利用を前提として書いています。

使い方
簡単に使い方を解説します。
テーブルの作成
テーブルはTableオブジェクトを書くことで定義できます。
以下、idを主キーとしname, addressのカラムをもつusersテーブルの例です。
Table users {
id int [pk]
name varchar
address varchar
}
これで以下のようなエンティティが表示されます。

記法はこちらです。
Table テーブル名 {
カラム名 型 属性(プライマリーキー, リレーション etc)
}
関連の作成
テーブル同士のリレーションは、カラムにref属性を付与することで定義できます。
以下先ほどのusersテーブルと多対一の関連を持つuser_itemsテーブルの例です。
Table user_items {
id int [pk]
user_id int [ref: > users.id]
name varchar
price int
}
これで以下のようなリレーションが作られます。

記法はこちらです。
関連の種類は 3 種類あります。
-
<一対多 -
>多対一 -
-一対一
Table foo {
foo_id int [ref: 関連の種類(<, -, >) テーブル名.カラム名]
}
上記の書き方以外にも、以下のようにテーブル定義とは別に書く方法もあります。
ref: user_items.user_id > users.id
どちらもとても直感的ですね。
diagram.io の利点・欠点
最後に簡単に diagram.io の利点と欠点をまとめます。
👍利点
- 記法が単純明快、直感的で分かりやすい(一番強み)
- エディタ上で補完が効くので入力しやすい
- エディタ上のエラーメッセージが分かりやすい
- テーブルの配置をドラッグ&ドロップで自由に変更できる
- 様々な形式で import, export 出来る
👎欠点
- UML 記法と異なり他プラットフォームでサポートされていない記法(GitHub, esa etc)
- URL でのシェア機能は有料なので、チームでの共有が少し面倒
- テーブルが多いと auto-arrange だけでは見辛く、配置を手動で調整する必要がある
終わりに
以上簡単ですが、dbdiagram.io の紹介でした。
UML 記法をどうしても覚えられない自分としては、神ツールだと思っています(覚えよう😅)。
今後もちょこちょこ利用していきたいです。
Discussion