在我們使用 Claude Code 建立了 Vue 前端架構後,現在終於要開始處理一個真正的後端困擾:my-refrigerator 裡面的資料到底要怎麼保存?
如果只是做一個簡單的展示網站,資料可以暫時寫死在前端。但 my-refrigerator 的目標是真正記錄家裡的冰箱、採買清單與食譜,因此需要一個可靠的資料庫來保存這些資訊。今天的任務,就是使用 Claude Code 設計第一版的資料庫 Schema。
這一次,我們也會正式使用 Database Skill。
如果 Frontend Skill 是告訴 Claude Code「Vue 前端應該怎麼寫」,那麼 Database Skill 就是告訴 Claude Code「資料庫應該怎麼設計」。例如資料表命名方式、欄位命名規則、Primary Key 的使用方式、資料型別、時間欄位格式、Foreign Key,以及資料表之間的關聯方式,都可以整理在 Database Skill 中。
因此,今天不應該直接對 Claude Code 說「幫我建立資料庫」,而是先讓它了解目前專案的規則:
CLAUDE.md
Database Skill
my-refrigerator 功能需求
接著可以提出這樣的 Prompt:
「請根據 my-refrigerator 的功能需求與 Database Skill,設計第一版 PostgreSQL Schema。請先分析資料表、欄位與關聯,不要修改任何檔案。」
這時候 Claude Code 就可以從產品功能反推資料模型,而不是單純把畫面上的欄位全部轉成資料表。
目前最核心的資料,可以先從幾個部分開始。
第一個是 User。未來如果加入登入功能,每個使用者都應該擁有自己的冰箱、採買清單與最愛食譜。
第二個是 Refrigerator Item,也就是冰箱中的食材。例如:
food_name
quantity
unit
category
purchase_date
expiration_date
image_url
這些資料可以讓我們知道「冰箱裡有什麼」、「有多少」,以及「什麼時候可能過期」。
第三個是 Shopping Item,用來記錄採買清單。例如:
name
quantity
unit
purchased
created_at
未來看到冰箱裡缺少雞蛋,就可以直接把「雞蛋」加入採買清單,買完之後再標記為已完成。
第四個則是 Recipe。食譜本身可以包含名稱、介紹、圖片、料理步驟等資訊。如果一份食譜需要多種食材,就可以另外建立 Recipe Ingredient,將食譜與食材建立關聯。
這時候就會發現,資料庫設計不是單純「有哪些欄位」而已,更重要的是資料之間的關係。
例如:
User
│
├── Refrigerator Items
│
├── Shopping Items
│
└── Favorite Recipes
│
↓
Recipes
│
↓
Recipe Ingredients
這些關係如果一開始沒有想清楚,等到後面功能越做越多,就可能需要花大量時間修改資料庫。因此,讓 Claude Code 先分析資料模型,再由開發者 Review,是非常重要的 AI 開發流程。
這裡也可以再次練習前幾天學到的「先問、再做」。
例如不要直接接受 Claude Code 的第一個 Schema,而是可以進一步詢問:
「為什麼 Recipe 與 Recipe Ingredient 要拆成兩張表?」
「Refrigerator Item 和 Food 是否應該拆開?」
「哪些欄位應該允許 NULL?」
「這些資料表之間的 Foreign Key 關係應該怎麼設計?」
透過這些問題,可以讓 Claude Code 成為「資料庫設計討論的夥伴」,而不是單純的 SQL 產生器。
完成 Schema 設計後,再讓 Claude Code 根據確認好的架構建立 SQL 或 Migration。這時候 Database Skill 就能發揮作用,確保資料表名稱、欄位格式、資料型別與關聯方式都符合專案規範。
而且 Database Skill 不應該只是今天用一次。隨著專案持續開發,未來新增 AI 食材辨識、食材保存期限、特價食材與 AI 食譜推薦等功能時,都可以持續更新 Database Skill,讓資料庫設計規範跟著專案一起成長。
今天最重要的學習並不是記住每一張資料表,而是理解一個觀念:
Database Schema 是整個應用程式的重要骨架,而 Database Skill 則是告訴 AI「這個骨架應該怎麼設計」的規則。
完成後,my-refrigerator 已經具備三個重要基礎:
Vue 前端架構 + Database Skill + Supabase PostgreSQL 資料庫。
接下來,我們就可以讓前端真正開始讀取與寫入這些資料,建立 my-refrigerator 第一個可以實際操作的功能——我的冰箱。