06 May 2014, 19:24

ER図作成ツール-MySQL Workbench- を使ってみた

表題の通りER図作成ツールというものを使ってみた。
開発をやる現場では当たり前のように使われているのかもしれないけど、ぼくは使ったことなかったです。
ER図とかテーブル構造はExcelでまとめて管理していました。

きっかけは、ソフトウエアデザインを読んでいてER図作成ツールなるものがでてきたので、便利そうと思ってぐぐってみた。
調べると主なフリーのER図作成ツールは以下があるっぽい。

  1. DBDesigner
  2. A5-SQLmk-2
  3. AmaterasERD
  4. MySQL Workbench
  5. ERMaster

(参考)http://treeapps.hatenablog.com/entry/20110505/p1

この中でMacで使えそうなのがMySQL Workbenchしかなかったのでこちらを利用。
本当はMySQL以外のDBMSにも対応しているものがよかったのだけど…

ざっと使ってみた感じ以下3つがよいと感じた点。

1.ER図作成が容易

ER図作成ツールなのであたりまえなのだが、今までExcelの図形など使っていて書いていたので簡単さに驚き。
属性についてもそれぞれ型やキー・制約などの設定も記述できる。

2.DDLにすぐにエクスポート可能

作成したER図についてはDDLにすぐにエクスポートできる。
なので、ツールでER図さえきちんと書けば実際のDB、テーブル構築は一瞬で可能。

3.イメージ図としてエクスポート可能

作成したER図をPNG形式にエクスポートできるので、メンバー等との共有が容易。
また、ドキュメントとして残す際にもとても使えると思う。
Excelのシート形式にエクスポートできたらなぁとも思う…

実際にMySQL Workbenchを使って簡単にER図を作成してみた。
・ユーザが飲んだお酒を記録していくWebシステムです。
・利用するにはシステムへのユーザ登録が必要。
・ユーザはお酒マスターから飲んだお酒を登録する。
 →同じお酒を何度登録(飲んでも)よい
・お酒には産地(都道府県)を記入する。
・ユーザは本システムへログイン後のアクセスログが取得される。

こんなざっくりとした感じ。

作成したER図はこんな感じに出来上がります(PNG)。
f:id:mosuke5:20140506191125p:plain

DDLはこんな感じに。

-- MySQL Script generated by MySQL Workbench
-- Tue May  6 19:16:11 2014
-- Model: New Model    Version: 1.0
SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@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;

(以下省略)
 

このエントリーをはてなブックマークに追加