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

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

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

トリッキーな事をすれば可能です〜


f:id:treeapps:20180418131549p:plain

私の周りでは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に関しては以下のトピックも参考にどうぞ。
treeapps.hatenablog.com
treeapps.hatenablog.com