Feature · ER 図

Mac で使える ER 図作成ツール

テキストで書けば図になり、図で動かせばテキストが変わる。Joinery は、ER 図と DDL を同じファイルから作る macOS 向けの DB 設計ツールです。

テキストで書くと、図が描かれる

Joinery は、DBML というテキストでテーブルと関係を書き、それを ER 図として表示します。図でテーブルを動かしたり列を足したりすると、テキストの該当行だけが書き換わります。テキストと図のどちらで編集してもよく、どちらも常に同じ内容を指します。

Joinery のメイン画面。左に DBML、中央に 4 つのグループに色分けされた ER 図
左が DBML、中央が ER 図。テーブルはグループごとに色分けされます。
Table orders {
  id bigint [pk, increment]
  customer_id bigint [not null, ref: > customers.id]
  ordered_at timestamptz [not null]
}

この 4 行で、orders テーブルと、customers への多対一の関係が図に描かれます。

crow's foot 記法を自動で付ける

関係の線の端には、crow's foot 記法(IE 記法)の記号が付きます。「1 か多か」はリレーションの向きから、「任意か必須か」は外部キー列の NOT NULL と UNIQUE から自動で決まるので、記号を手で選ぶ必要はありません。記号の読み方は ER 図の書き方と crow's foot 記法 で解説しています。

既存の DB や SQL から図を起こす

  • 実 DB から:PostgreSQL・MySQL・SQLite に読み取り専用で接続し、テーブル・列・インデックス・外部キー・コメントを取り込みます。
  • DDL から:PostgreSQL・MySQL・SQL Server・SQLite の CREATE TABLE を含む SQL ファイルを読み込みます。

取り込んだあとは自動配置で並べ、必要に応じて手で整えます。動かした位置は 8px 単位で保存され、次に開いたときも同じ配置で表示されます。

テーブルが多くても迷わない

Focus モードで orders と直接つながるテーブルだけを表示している ER 図
Focus モード。選んだテーブルと直接つながるテーブルだけを表示。
  • Focus モード:選んだテーブルから 1 hop / 2 hops 以内だけを表示
  • 保存ビュー:「受注まわり」など、見たいテーブルの組み合わせに名前を付けて保存
  • 自動グルーピング:外部キーのつながりと名前の接頭辞からグループを提案
  • ジャンプ:⌘P でテーブル名を検索して移動

画像やドキュメントとして共有する

図は SVG と PNG で書き出せます。HTML の設計書には ER 図も入ります(Excel の定義書は表のみ)。詳しくは テーブル定義書の自動生成 をご覧ください。

図の変更も Git でレビューできる

プロジェクトは、スキーマの .dbml と配置の .joinery.json の 2 つのテキストファイルだけです。配置は 1 テーブル 1 行で保存するので、テーブルを 1 つ動かしたときの差分は 1 行です。画像の ER 図と違い、プルリクエストで「何が変わったか」を読めます。