読者です 読者をやめる 読者になる 読者になる

文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

ermasterで外部キーを貼らずにリレーションの線を引く

ER図

私の周りではER図と言えばermaster、という程に普及しました。(させました)
そこで、小技である「外部キーを貼らずにリレーションの線を引く」をやってみたいと思います。

まずer図を書く
よくあるパターン。
f:id:treeapps:20120916205613p:plain
子テーブルBは、親テーブルAの主キーと、B自身もPKをもっているパターン。

DDLのオプションを確認する
現状だと線を引いてしまっているので、外部キーが貼られています。
ここでまず右クリックから、以下のように「エクスポート→DDL」と選択します。
f:id:treeapps:20120916205847p:plain
次がポイントです。出力オプションをよく見て下さい。
f:id:treeapps:20120916210059p:plain
「CREATE」の部分に「外部キー」があります。つまり、
外部キーを出力しない事ができるのです。
ではやってみましょう。

DDLを出力する
出力されたDDLは以下の通りです。

SET SESSION FOREIGN_KEY_CHECKS=0;

/* Drop Tables */

DROP TABLE B;
DROP TABLE A;




/* Create Tables */

CREATE TABLE A
(
	I1 INT NOT NULL,
	V1 VARCHAR(10),
	PRIMARY KEY (I1)
);


CREATE TABLE B
(
	I1 INT NOT NULL,
	I2 INT UNSIGNED NOT NULL,
	V1 VARCHAR(20),
	PRIMARY KEY (I1, I2)
);

ほら、
外部キーを出力しないでDDLが出力できましたね!

特にMySQLでは外部キーを貼らないという選択をする事があるので、
この技は非常に有用かと思います。是非使ってみてくださいね。

ermasterに関しては以下のトピックも参考にどうぞ。
ERMasterの罠:その2:単語機能は怖い - treeのメモ帳
ermasterを使ったDBの運用を考える。 - treeのメモ帳