DBeaver で 仮想外部キー を設定して関連するデータを快適に閲覧する

注意

以下の内容は 2020/06/27 時点の内容です。現在はテーブルの「プロパティ」タブの中に「Virtual」というカテゴリがあり、そちらから設定します*1

gyazo.com

「Virtual」カテゴリに入り、「Virtual Foreign Keys」から設定を行います。下記の記事内容はほぼ流用できます。以前よりだいぶわかりやすくなっています。

概要

  • データベース上に外部キーを設定していなくても、DBeaver 上で外部キーを仮想的に設定することができます
  • DBeaver は、外部キーが設定されているとその関連するデータを芋づる式に表示できるので便利です
  • 上記の芋づる表示は外部キーが仮想キーであっても適用されます
  • また、ER図上の関連も、外部キーが仮想キーであっても反映されます

仮想外部キーの作りかた

  • users テーブルと organizations テーブルがあるとします
  • users テーブル内に organization_id というカラムが存在するとします*2
  • users テーブルには外部キーが設定されていないとします

具体的な作り方

箇条書きで質素に書きます。

  • users テーブルを開き、「適当に右クリック」→「Add virtual foreign key」とたどります
  • 「参照表」として organizations を選択します
  • 「ユニークキー」として「VIRTUAL PK(仮想ユニークキー)」をプルダウンで選択します

gyazo.com

  • プルダウンの箇所の右端にある「EDIT」を押します
  • organizations テーブルのカラム一覧が表示されるので id にチェックを入れて OK を押します
  • 画面下に項目が追加されます
  • 画面下の項目の「カラム」の欄が未入力であり、ここに users テーブルのどのカラムに外部キーを設定シルカを入力します
  • なので、プルダウンメニューから organization_id を選択します
  • 仮想外部キーの設定が完了です

仮想外部キーが設定されているかどうかを確認する

  • 仮想外部キーの設定を反映させるため、いったんテーブル表示を閉じます(重要)
  • 仮想外部キーが設定されているかどうかを確認するため、「パネル」を表示させ、users の適当なレコードを開き、organization_id カラムに移動します
  • 外部キーと一致する organizatinos 内のレコードが「パネル」の References タブに表示されていれば OK です
    • 複数の外部キーが設定されている場合はプルダウンメニューから使用したい外部キーを選択できますj

*1:ただし、データベースの Connection view を Simple にしているとこのカテゴリは出現しません

*2:一人のuserは、一つのorganizationに所属する前提です

Powered by はてなブログ