內部應用的資料庫與架構設計師(實體 → 關聯 → 驗證規則)
產出符合規範的 Postgres 架構,包含約束條件、索引、RLS 註記及符合工作流程的範例種子資料。
提示詞概覽
精選 AI 合作夥伴
給你的提示
為每個資料表加入 created_at/updated_at 欄位;為外鍵建立索引;明確建模審核狀態轉換;將枚舉放在檢查約束中以提升可攜性。
來自營運團隊NexusAi Technology解決的問題
臨時建立的資料表會導致後續資料問題。本方案提前建立穩健的架構與驗證計畫。
生產用 DDL
可直接執行的 Postgres SQL,含約束條件。
RLS 藍圖
符合最小權限原則的角色政策。
索引計畫
熱點路徑效能說明與索引建議。
種子資料
真實的插入資料,立即可測試。
AI 提示詞指令
扮演角色:專精於 Supabase 的 Postgres 內部 CRUD 與審核系統的資料架構師。
此任務的重要性:良好的架構可防止資料重複、審核錯誤及查詢緩慢。明確的約束保護操作與稽核。
重要界限:
- 優先採用第三正規形式(3NF),並針對熱讀取進行務實的非正規化。
- 在資料庫層面強制資料完整性,而非僅依賴使用者介面。
- 適用時假設多租戶準備,透過 org_id 或 project_id 實現。
使用者輸入:
- 實體清單及關鍵欄位
- 關聯與審核狀態
- 查詢熱點與報告需求
- 安全模型(角色與存取規則)
目標:
1) 正規化實體與關聯。
2) 建議主鍵/外鍵、唯一約束與檢查約束。
3) 定義關鍵查詢的索引。
4) 制定 Supabase 的 RLS 政策與授權註記。
5) 提供種子資料與遷移腳本大綱。
分析流程:
1) 建立實體/狀態地圖並識別生命週期事件。
2) 為每個實體定義欄位、類型、可否為空及預設值。
3) 指定約束與級聯行為。
4) 建議索引(BTREE/GIN)並說明理由。
5) 依角色草擬 SELECT/INSERT/UPDATE/DELETE 的 RLS 政策。
6) 提供 SQL DDL 與範例種子插入語句。
所需輸出格式:
- ER 概覽(文字)
- 含註解的 SQL DDL 區塊
- RLS 政策清單
- 索引計畫與理由
- 種子資料範例
- 遷移檢查清單
品質控管:
- 每個外鍵皆有索引。
- 無模糊的可空外鍵。
- 對枚舉/狀態使用檢查約束。
驗證檢查清單:
- 每個角色支援 CRUD 路徑
- 關鍵查詢皆有索引覆蓋
- RLS 預設拒絕跨租戶存取
最終指示:輸出可直接生產使用的 SQL 及簡要 Supabase 設定檢查清單。
預期成果
ER 概覽:org、user、role、request、approval、comment。請求有狀態:草稿、已提交、已批准、已拒絕。 SQL DDL:create table org (...); create table request (..., org_id uuid references org(id) on delete restrict, state text check (state in ('draft','submitted','approved','rejected'))); 索引:request(org_id, state) 上的索引,request(search_tsv) 上的 GIN 索引。 RLS:在 request 啟用;org_read 政策用於 select,條件為 (org_id = auth.org_id())。
實施流程
在 ChatGPT 中設計架構
將您的實體清單、關聯與角色矩陣貼入 ChatGPT。執行提示以取得 ER 註記、含約束的 SQL DDL 及 RLS 政策。檢視索引的設計理由。
25 min在 Supabase 建立資料庫
開啟 Supabase SQL 編輯器並套用 DDL。啟用 RLS 並新增產生的政策。使用種子資料填充測試專案並驗證約束。
20 min驗證查詢
在 Supabase 執行您的前五大查詢。確認索引被使用且延遲可接受。若查詢計畫顯示全表掃描,調整索引定義。
15 min
