從 JSON Server 到 Supabase:打造會員揪團系統的資料建模與 Next.js 整合實作紀錄
📌 前言
在這次 Side Project 中,我的目標是打造一個「會員揪團系統」,初期我使用 JSON Server 快速建立假資料與 REST API,進行資料建模與畫面串接的驗證。後期為了建立更完整的後端資料管理與授權控制,我選擇將資料結構遷移至 Supabase 並透過 SQL 建立 schema,並用 Next.js 搭配 Supabase Client 實作前端資料串接。
這篇文章會分享我從假資料設計、資料表建立到實際前後端整合的過程。
🧱 一開始用 JSON Server 快速建模
我透過 data.json
描述了三張資料表:
members
:會員資料groups
:揪團活動groupMembers
:中介表,用來表示會員與活動的多對多關係
{
"members": [{ "id": 1, "name": "Alice", "email": "alice@example.com" }],
"groups": [{ "id": 1, "title": "登山揪團", "hostId": 1 }],
"groupMembers": [{ "id": 1, "groupId": 1, "memberId": 1, "role": "host" }]
}
-- 會員表
create table members (
id serial primary key,
name text not null,
email text unique not null
);
-- 活動表
create table groups (
id serial primary key,
title text not null,
description text,
host_id integer references members(id)
);
-- 中介表:記錄會員與活動的多對多關係
create table group_members (
id serial primary key,
group_id integer references groups(id),
member_id integer references members(id),
role text check (role in ('host', 'participant')),
unique (group_id, member_id)
);
透過這個關聯設計,我可以:
查詢某會員參加了哪些活動
查詢某活動有哪些參與者
檢查某會員在該活動的角色