リレーションシップの編集
リレーションシップはキャンバスのコンテキストメニュー、またはショートカットで作成します。編集を始めるを参照してください。
このページでは、作成したリレーションシップに対してできることを説明します。
削除
リレーションシップのコンテキストメニューから削除できます。
リレーションシップはテーブルやメモのようには選択しないため、ショートカットはありません。
リレーションシップは接続している対象とともに削除されます。テーブルを削除するとそのテーブルにつながるリレーションシップがすべて削除され、カラムを削除するとそのカラムを使うリレーションシップがすべて削除されます。
種類の変更
リレーションシップのコンテキストメニューから変更できます。
次の 4 つの種類から選択でき、現在の種類にはチェックが付きます。
- Zero One
- Zero N
- One Only
- One N
これはリレーションシップの作成時に選ぶ 4 つの種類と同じで、それぞれにショートカットがあります。編集を始めるを参照してください。
N:M リレーションシップ
エディタは物理モデルをベースにしているため、N:M リレーションシップは下図のようにマッピングテーブルで表現します。
GraphQL、DBML、AML を読み込むと、マッピングテーブルは自動で作成されます。
多対多の宣言は <left>_<right> という名前のテーブルとして読み込まれ、Junction table inferred from <left> <-> <right> というコメントが付き、識別リレーションシップで両側に接続されます。
ファイルの読み込みと書き出しを参照してください。
識別リレーションシップ
リレーションシップを作成すると、親テーブルの主キーが NOT NULL の外部キーカラムとして子テーブルにコピーされるため、作成した直後は非識別リレーションシップです。
識別リレーションシップにするには、子テーブルのその外部キーカラムを、ショートカット Alt + K またはテーブルのコンテキストメニューの Primary Key で主キーに設定します。
この状態はエディタが自動で同期します。
子側のカラムがすべて主キーである間は識別リレーションシップとなり、いずれかが主キーでなくなった時点で非識別リレーションシップに変わります。
コネクタの読み方
- 識別リレーションシップは実線、非識別リレーションシップは破線で描画します。
- 子側の端には、リレーションシップの種類に応じたカーディナリティ記号が付きます。Zero One は丸と棒、Zero N は丸と鳥の足、One Only は 2 本の棒、One N は棒と鳥の足です。
- 親側の端は、外部キーカラムのいずれかが
NULLを許可する場合は丸、すべてNOT NULLの場合は短い線になります。 - コネクタにマウスを重ねると、そのコネクタと、それがつなぐ両方のテーブルのカラムが強調表示されます。
コネクタを完全に非表示にするには Relationship の表示オプションを使います。テーブル関連機能を参照してください。
コネクタの経路
コネクタは直交する経路で描画します。
経路は両端の間にあるテーブルを横切らずに迂回し、角は 45 度に切り落とされます。
テーブルの同じ辺から出る経路は、互いに重ならないように別々の通り道へ分けられます。
設定する項目はありません。
キャンバス上の要素が移動したりサイズが変わったりするたびに経路を自動で再計算するため、手作業で調整する必要はありません。