こんにちはかみむらです。SQLのER図を書けるツールを探していたところ、DrawSQLというサービスを見つけました。
DrawSQLは、SQLのER図を簡単に作成できるほか、SQLファイルとして出力できる特徴があります。つまり、DrawSQL上で設計したテーブル設計を、そのままデータベースに適用することができます。
私みたいにSQL設計に慣れていない方にとっては、便利なサービスになると思います。ではさっそく紹介していきます。
DrawSQLの公式サイト
料金プラン
DrawSQLの料金プランはブログ執筆時点(2020/1/17)で4つあります。HOBBYISTが無料、SOLOが15ドル、TEMAが35ドル、ENTERPRISEが99ドルです。HOBBYISTは無料で使えますが、パブリックなダイアグラムしか作成できません。
DrawSQLの便利なところ
ここからはDrawSQLの3つの便利な機能について、実際にサービスを触りながら紹介します。
1、3種類のSQLに対応
2、GUIベースでSQLを設計
3、画像とSQLファイルの出力
3種類のSQLに対応
DrawSQLでは、MySQL、PostgreSQL、SQL Serverの3種類に対応しています。では実際にダイアグラムを作成してER図を作成してみましょう。アカウントの作成後、ダッシュボードからCreate Diagramをクリックして下さい。
するとダイアグラムの作成画面がでます。ここでは3種類のデータベースを選べます。Privateで作りたい場合は有料プランに加入する必要があります。ダイアグラムの名前を入力後、Createをクリックして作成しましょう。
GUIベースでSQLを設計
ダイアグラムが作成できました。ここからはER図を作成していきます。まずはNew Tableでテーブルを作成してください。私はuserテーブルと、profileテーブルを作成しました。そして、New Columnでテーブル毎のカラムを作成できます。
テーブルのカラムはPrimary KeyやUnique Keyだけでなく、Indexを作ることもできます。
そして、各テーブルのカラム同士を繋ぐことで、リレーションを作成することもできます。ここではOne-To-Oneのリレーションを実現しています。
画像とSQLファイルの出力
作成したER図を出力します。現在は.sqlのファイルと.pngの画像ファイルに対応しています。今後はJSONにも対応予定みたいです。
こちらが実際に出力された画像です。非常に綺麗なER図を画像化することができました。
また、SQLファイルの出力はこんな感じです。
create table `user` ( `id` int not null, `username` text not null, `email` int not null ); alter table `user` add primary key `user_id_primary`(`id`); create table `profile` ( `id` int not null, `description` text not null, `user_id` int not null ); alter table `profile` add primary key `profile_id_primary`(`id`); alter table `profile` add constraint `profile_user_id_foreign` foreign key (`user_id`) references `user` (`id`)
最後に
今回はDrawSQLを紹介しました。私みたいにSQLの設計に慣れていない方は、DrawSQLから設計に着手してみてもいいかもしれません。設計、勉強、テストなどさまざまな用途がありそうですね。