draw.ioを使ってER図を作ってみた

こんにちは!
今週は、データベースの設計をするにあたり、テーブル間の関係や保存すべき情報(エンティティ)を洗い出せているかを見やすくするために作成する、ER(Entity-Relationship)図というものについて書きました。
ER図の簡単な説明と、フリーのツールdraw.ioを使ってみた使い方や感想となっています。

ER図

まずは、ER図の簡単な説明です。
ERD(Entity-Relationship-Diagram)とも呼びます。
ER図は下の画像のような、テーブル名とカラムをまとめた箱とテーブル間の関係を示した線から構成されています。

f:id:kojiprg:20200819125448p:plain
ER図の例

なお、上の画像ではカラム名だけでなく、型や制約も一緒に記載しています。
データベースを作成するために必要な情報なので、ER図に含めた方が良いと思います。
また、カラム名の左側にPKやFKといった文字があるカラムがありますが、PKが主キーを、FKが外部キーを表しています。
主キーとは、テーブルに保存されているデータを一意に識別するためのカラムです。
通常は、idが主キーとして扱われていると思います。
外部キーは、他のテーブルと関連付けて扱うためのカラムです。
上の画像の例では、どの顧客の注文かを判断するために、customersテーブルと、ordersテーブルを関連づける必要があり、ordersテーブルのなかに外部キーとしてcustomers_idが含まれています。

テーブル間を結ぶ線の形で、一人の顧客に対して注文が複数存在できるのか、それとも注文は必ず一つなのかといった、数に関する関係を示しています。
1対多、1対1のアソシエーションと呼ばれる関係ですが、詳しい説明は割愛します。
上の画像の場合、一人の顧客に対して複数の注文が存在できるため、customersテーブル側は1を意味する縦棒が入っており、ordersテーブル側は0~複数を示す、丸とフォークのような枝分かれが書かれています。

draw.io

ここからは、実際にER図を作成するツールを使ってみたので、使い方や感想をまとめます。
ER図をフリーで作成できるソフトはいろいろありますが、今回はこちらの記事で紹介されていた、draw.ioを使ってみました。
まず、サイトにアクセスするとどこに保存するかを聞かれます。

f:id:kojiprg:20200819135558p:plain
drawの保存先

google driveやone drive以外にも、dropboxgithubも選べます。
ちなみに、デフォルトだと説明が英語で出てきます。(スクリーンショットを撮り忘れました。。。)
日本語への設定は、後述します。
保存場所を指定すると、新規作成か保存済みデータの編集かを聞かれるので、初めてなら新規作成を選びます。
すると、以下のようにテンプレートの一覧が出てきます。
ER図専用のツールではないので、いろいろ出てきます。

f:id:kojiprg:20200819135846p:plain
テンプレートの一覧

一番上のボックスでファイル名を作成します。
拡張子も変えられますが、後からpng出力などもできるのでデフォルトのままで良いと思います。
テンプレートは、白紙ファイルで問題ないですが、今回はERDで作成してみます。
すると、以下のような画面が開きます。

f:id:kojiprg:20200819140351p:plain
新規作成開始画面

左側にボックスなどの一覧、中央に編集シートがあり、右側で選択したボックスのプロパティなどを編集できます。
ER図のボックスや線は左側のERと書かれた場所に格納されています。
また、右上の地球マークをクリックすると言語の一覧が表示され、言語を変更することができます。
日本語は下から三番目くらいにあります。
よくある「japanese」ではなく、「日本語」で登録されています。

左側のERをクリックすると、下図のように一覧が表示されます。
たくさんありますが、基本的には左上角のTable1と下側に集まっている線しか使いません。
使いたい要素をクリックすることで、中央の編集シートに配置されます。

f:id:kojiprg:20200819141357p:plain:h400
ER図作成に使用できるボックスなど

要素を配置したら、ドラッグで好きな位置に配置することができます。
線の場合は、選択すると下図のように両端が青くなるので、そこをドラッグしてテーブルのボックスに近づけると接続させることができます。
パワポと同じですね。

f:id:kojiprg:20200819142220p:plain
選択された線は両端が青くなる。ここをドラッグ。

テーブル名や、カラム名の編集は、編集したいテーブル→編集したい名前とクリックで選択していきます。
テーブルの中にテキストボックスが複数配置されているような構造です。
テーブルやカラムを量産したいときは、command+Dで複製できます。
特にカラムを複製すると、下図のように勝手にテーブルのサイズも調整してくれるので便利です。

[f:id:kojiprg:20200819142354p:plain:]f:id:kojiprg:20200819142434p:plain
カラムの複製

あとは、pngなどへの書き出しですが、google driveの場合は、左上のファイルから、形式を指定してエクスポートで可能でした。

f:id:kojiprg:20200819143602p:plain
画像ファイルへの書き出し

以上、簡単に使い方をまとめてみました。
使ってみた感想ですが、テーブルやアソシエーションのための線を配置する機能と、そのみためを編集するための機能のみなので、直感的に使いやすいと思いました。
ユーザ登録も必要なく、無料で使用できるので、特殊な機能を必要とせず、すぐにER図を作成したいという方にはおすすめです。

最後までお付き合い、ありがとうございました!