Skip to content

外部キーの設定と ER 図

これは誰に向けたものですか

テーブルの関係を定義する必要があり、データ構造全体を視覚的に表示したいユーザー向け。

これで解決すること

設計段階で外部キー制約とカスケード ルールを明確にし、起動後のデータ整合性の問題を回避できます。 ER 図は、チームがテーブルの関係を迅速に理解するのに役立ちます。

前提条件

  • 現在のテーブルには少なくとも 1 つのフィールドがあります。
  • 関連付けの対象となるテーブルとフィールドはすでに特定されています。
  • ER 図からリレーションシップを作成するには、まずソース テーブルとターゲット テーブルの両方を現在のワークスペースに保存します。
  • ER リレーションシップ ウィザードは、ターゲット テーブル上の単一列の主キーまたは一意キーのみを参照できます。

ER 図から関係を作成する

  1. テーブル設定領域の上部にある「ER Diagram」をクリックします。結果: 現在のワークスペースに保存されているテーブルと既存のリレーションシップが表示されます。
  2. ソースフィールドの左側にある接続ハンドルからターゲットフィールドの右側にあるハンドルまでドラッグします。結果: リレーションシップ ウィザードが開き、ソース フィールドとターゲット フィールドが選択されます。
  3. ソースフィールドとターゲットフィールドを確認します。結果: ターゲット リストでは単一列の主キーまたは一意のキーのみが許可され、フィールド タイプが異なる場合は警告が表示されます。
  4. Many-to-one または One-to-one を選択します。結果: 1 対 1 では、ソース フィールドに一意の制約があることが保証されますが、多対 1 では、必要に応じてソース フィールドに通常のインデックスを作成できます。
  5. Required または Optional を選択します。結果: ソースフィールドは NOT NULL または NULL になります。必須の関係では SET NULL を使用できません。
  6. 関係名、更新アクション、削除アクション、およびインデックス オプションを確認します。アクションのデフォルトは NO ACTION です。ビジネス セマンティクスで必要な場合にのみ、CASCADESET NULL、または別のアクションを選択してください。
  7. 変更プレビューを確認し、Create Relationship をクリックします。結果: 外部キー、フィールドの NULL 可能性、および必要なインデックスが一緒にソース テーブルに書き込まれ、ER 図が新しいリレーションシップ ラインで更新されます。

外部キーパネルからリレーションシップを作成する

  1. テーブル構成領域の Foreign Key Configuration タブに切り替えます。結果: 外部キー管理パネルが開きます。
  2. Add Foreign Key」をクリックします。結果: 外部キー編集行が展開されます。
  3. Foreign Key Name を入力し、現在のテーブル フィールド、参照されるテーブル、および参照されるフィールドを選択します。結果: 関係が確立されます。
  4. 必要に応じて、Update Rule および Delete Rule を設定します。結果: 参照動作が定義され、DDL はすぐに更新されます。
  5. これらの手順を繰り返して、さらに外部キーを追加します。結果: 現在のテーブルは複数のテーブルを参照できます。

ER図を調べて整理する

  1. テーブルのノードをドラッグしてレイアウトを調整します。結果: テーブル スキーマを変更せずにノードの位置が変更されます。
  2. マウス ホイールを使用してズームするか、ツールバーの自動レイアウトを使用します。結果: 大規模なワークスペースでもテーブルとリレーションシップを簡単に見つけることができます。
  3. 関係ラベルから削除アクションと更新アクションを読み取ります。削除が必要な場合は、行の横にある削除コントロールを使用してください。結果: 対応する外部キーがソーステーブルから削除されます。

いつ完了するか

  • 外部キー構成パネルには、すべてのターゲット外部キーが正しいフィールド、関連テーブル、および関連フィールドとともにリストされます。
  • 右側の DDL には、すでに FOREIGN KEY ステートメントが含まれています。
  • ER 図では、現在のテーブルと関連テーブルの間の関係線が正しく表示されます。
  • 1 対 1 のソース フィールドにはプライマリ インデックスまたは一意のインデックスがあります。クエリの高速化が必要な多対 1 の関係には、適切なインデックスが必要です。
  • 更新/削除ルールはビジネス上の期待と一致します。

よくある落とし穴

  • 外部キー フィールドと関連フィールドの型に互換性がない場合、生成された DDL がターゲット データベースで失敗する可能性があります。事前に型の一致を確認してください。
  • ターゲットが単一列の主キーまたは一意キーではない場合、ウィザードは作成をブロックします。まず、プライマリ インデックスまたは一意のインデックスをターゲット フィールドに追加します。
  • 同じ名前のテーブルは、異なる保存されたレコードを表す場合があります。 ER 図では、これらのノードが分離されており、どの重複ターゲットがリレーションシップを受け取るべきかを推測しません。
  • ウィザードは、同じフィールド間の重複する名前と重複する関係をブロックします。
  • すべてのデータベースがすべてのカスケード ルールをサポートしているわけではありません (たとえば、SET NULL ではフィールドが NULL 可能である必要があります)。選択する前に、ターゲット データベースのサポートを確認してください。