1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Supabase でリレーションを設定してみた

Last updated at Posted at 2025-04-14

はじめに

supabaseのリレーションを設定するために調べたのでそのまとめです。
SQL初心者の自分が、Supabaseでテーブル同士のリレーション(外部キー)を設定し、React + TypeScriptでデータを読み込みます。

GUIも使えるので簡単に設定できました!

やりたいこと

Todoアプリのような構成で、以下のようなリレーションを作る

  • projects テーブル(プロジェクト)
  • tasks テーブル(タスク)
  • 1つの project に複数の task が紐づく(1対多)

テーブル設計とSQL

リレーション方法を調べるとSQLでの作成方法の記載がありました

SQLって?

SQLは、データベースに命令を出すための言葉。
テーブル作成やデータ取得の命令文。

SQL Editor を使う

supabaseの SQL Editor を使ってテーブルを操作することができる

  • Supabaseプロジェクトに入る
  • 左のメニューで「SQL Editor」クリック
  • コードを書いて「Run」で実行
create table projects (
  id uuid primary key,
  name text
);

create table tasks (
  id uuid primary key,
  project_id uuid references projects(id),
  title text,
  is_done boolean
);

すでにあるテーブルにリレーションを追加する

あとから外部キーを追加したい場合は ALTER TABLE を使う。

alter table tasks
add constraint fk_project
foreign key (project_id)
references projects(id);

これで tasks.project_idprojects.id を参照するようになる。fk_project は制約名で、任意の名前にできる。

外部キー制約を削除する

追加した外部キー制約を削除したいときは drop constraint を使う。

alter table tasks
drop constraint fk_project;

これで tasks テーブルから fk_project という外部キー制約が削除される。

Supabase GUIで追加する

すでにあるテーブルにリレーションを追加する

手順:
1. Supabaseの管理画面にアクセス
2. tasks テーブルの Edit Table を選択
3. Add foreign key relationship をクリック

JISOU-PersonalDevApp-Supabase-04-07-2025_06_00_PM.png

4. 以下のように設定:

  • Select a schema: public
  • Select a table to reference to :projects
  • public.tasks:project_id
  • public.projects:id

JISOU-PersonalDevApp-Supabase-04-07-2025_06_04_PM (1).png

5. 「Save」で保存して完了!

外部キー制約を削除する方法(GUI)

手順:
1. Supabaseの管理画面にアクセス
2. tasks テーブルの Edit Table を選択
3. foreign keysremove をクリック
4. リレーションの先頭に REMOVE が表示されたら、保存して完了

スクリーンショット 2025-04-07 18.25.43.png

まとめと感想

  • supabaseのGUIからリレーションの追加が簡単にできました!
  • SQLもコードがあれば貼り付けるだけなのでGUI操作よりずっと便利
  • SQLにどんどん慣れていくと良さそう

データ取得方法はこちら

JISOUのメンバー募集中!

プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてくださ!
▼▼▼

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?