表題の通りER図作成ツールというものを使ってみました。
現代では、WebアプリケーションのフレームワークにDBマイグレーションのような機能を持ち、スクリプト的にDB構造を管理することが多いかもしれません。しかし、時としてER図を管理したい場合もあるのではないでしょうか。
ER図とかテーブル構造はよくExcelでまとめて管理していましたが、規模が大きくなると辛いので試してみました。
試してみようと思ったきっかけは、ソフトウエアデザインを読んでいてER図作成ツールなるものがでてきたので、便利そうと思ったからです。
調べると主なフリーのER図作成ツールは以下があるようです。
- DBDesigner
- A5-SQLmk-2
- AmaterasERD
- MySQL Workbench
- ERMaster
(参考) http://treeapps.hatenablog.com/entry/20110505/p1
この中でMacで使えそうなのがMySQL Workbenchしかなかったのでこちらを利用してみます。
本当はMySQLといった製品に縛られないツールがよかったのだけど仕方ないですね。
優れている点
ざっと使ってみた感じ以下3つがよいと感じた点です。
1.ER図作成が容易
ER図作成ツールなのであたりまえなのだが、今までExcelの図形など使っていて書いていたので簡単さに驚きました。
属性についてもそれぞれ型やキー・制約などの設定も記述できます。
2.DDLにすぐにエクスポート可能
作成したER図についてはDDLにすぐにエクスポートできます。
なので、ツールでER図さえきちんと書けば実際のDB、テーブル構築はすぐに可能です。
3.イメージ図としてエクスポート可能
作成したER図をPNG形式にエクスポートできるので、メンバー等との共有が容易です。
また、ドキュメントとして残す際にもとても使えます。
試しにER図を作ってみる
実際にMySQL Workbenchを使って簡単にER図を作成してみます。 下記のような簡単なシステムと想定します。日本酒好きなのがばれましたね。
- ユーザが飲んだお酒を記録していくWebシステムです。
- 利用用するにはシステムへのユーザ登録が必要。
- ユーザはお酒マスターから飲んだお酒を登録する。
- 同じお酒を何度登録(飲んでも)よい
- お酒には産地(都道府県)を記入する。
- ユーーザは本システムへログイン後のアクセスログが取得される。
こんなざっくりとした感じ。
作成したER図はこんな感じに出来上がります(PNG)。![er](/image/mysql-workbench-er.png)
DDLの出力もこんな感じに可能です。
```mysql -- MySQL Script generated by MySQL Workbench -- Tue May 6 19:16:11 2014 -- Model: New Model Version: 1.0 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';– Schema mydb
CREATE SCHEMA IF NOT EXISTS mydb
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE mydb
;
– Table mydb
.User
CREATE TABLE IF NOT EXISTS mydb
.User
(
user_id
INT NOT NULL AUTO_INCREMENT,
account
VARCHAR(45) NOT NULL,
password
VARCHAR(45) NOT NULL,
team_id
INT NOT NULL,
last_login
DATETIME NULL,
PRIMARY KEY (user_id
),
UNIQUE INDEX account_UNIQUE
(account
ASC))
ENGINE = InnoDB;
(以下省略)
## まとめ
現代の環境ではあまり使う場面も少ないかもしれないですが、
使ってみた感想は、思ったよりも使い勝手がよくいいものでした。
プロジェクトやお客さんのニーズに合わせて選択肢の1つしてどのようなツールかだけでも知っておくと良いと思います。
</body>