# リレーションシップエディタ

リレーションシップの情報を修正する画面です。

■ 共通部分

| 項目名 | 説明
--- | --- | ---
| 登録 | 編集中の情報を登録し、画面を閉じます。
| 削除 | 現在開いているリレーションシップを削除します。
| 戻す | 各情報を、編集前の状態に戻します。
| 終了 | 編集作業を中断し、画面を閉じます。
| 親エンティティ | リレーションシップの親となるエンティティの名称を表示します。
| 子エンティティ | リレーションシップの子となるエンティティの名称を表示します。
| 物理名 | リレーションシップを「参照整合性制約」としてデータベースに反映した場合の、制約名を指定します。 デフォルトでは(FK【親エンティティの物理名】【子エンティティの物理名】)という名称となります。 なお、この「FK_」については、オプション画面のオブジェクトタブで変更することが可能です。

■ 全般タブ

全般タブでは、動詞句・リレーションシップタイプ・カーディナリティ・アクションの編集ができます。

項目名 | 説明
--- | ---
動詞句 | リレーションシップの動詞句を指定します。
リレーションシップ タイプ | リレーションシップタイプを指定します。
カーディナリティ | カーディナリティを指定します。
アクション | リレーションシップに設定されている親(または子)エンティテイインスタンスに対する修正によって、もう一方のエンティティインスタンスに対してどのような操作を行うかを指定します。 選択可能なアクションは次の４つです。 何もしない (NONE)… 親（子）のエンティティでインスタンスが追加・修正・削除されても、子（親）のエンティティには何も操作を行いません。 連鎖 (CASCADE)… 親（子）のエンティティでインスタンスが追加・修正・削除された場合、子（親）のエンティティに含まれる関連インスタンスに対しても追加・修正・削除を行います。 禁止 (RESTRICT)… 親（子）のエンティティでインスタンスを追加・修正・削除する場合、子（親）のエンティティに関連インスタンスが含まれていた場合はその処理を禁止します。 NULL (SET NULL)… 親（子）のエンティティでインスタンスが追加・修正・削除された場合、子（親）のエンティティに含まれる関連インスタンスのキー属性をNULLにします。 ※データベースの種類によっては、フォワードエンジニアリングで反映されない場合があります。 （例えばOracleの場合、ON UPDATE句は存在しないため、「親（子）の更新」を指定してもフォワード時のSQL文にON UPDATE句は含まれません） MySQLの場合、リバースエンジニアリング時にはアクションは反映されません。

■ 使用キータブ

使用キータブでは、リレーションシップで使用するキーの指定や、対応するキー項目の設定・変更ができます。

項目名 | 説明
--- | ---
使用キー名 | リレーションシップで使用するキーを指定できます。 親エンティティに存在する主キー及び重複不可制約の中から選択可能です。
遅延制約 | リレーションシップを、[遅延制約]としてデータベースに実装する場合にチェックを入れます。
親キー属性 | 「使用キー名」で指定したキーの項目が一覧表示されます。
子エンティティ属性 | 「親キー属性」に対応する属性を、子エンティティの属性の中から指定します。

■ 定義タブ

定義タブでは、対象となるモデルの選択や、リレーションシップの定義情報を編集することができます。

項目名 | 説明
--- | ---
対象モデル | リレーションシップの表示対象モデルを指定します。
リレーションシップの 説明 | リレーションシップに対する説明を入力します。

■DDLタブ

DDLタブでは、リレーションシップを整合性制約オブジェクトとしてデータベースにフォワードする際の、DDL 文 ( ALTER TABLE 文 ) を表示します。

項目名 | 説明
--- | ---
DDL文 | 整合性制約を作成する SQL 文が表示されます。編集は出来ません。 また、多対多リレーションシップについては、フォワードエンジニアリングの対象とならない為、DDL 文も表示されません。