快速摘要
AI 可以在幾秒內生成資料庫 Schema,但它常忽略效能索引、資料正規化和安全設定(如加密欄位、存取控制)。這篇教你如何審查 AI 生成的資料庫設計。
AI 設計資料庫的優勢
AI 可以在幾秒內根據你的需求描述生成完整的資料庫 Schema,包括表格、關聯、欄位類型。對於快速原型特別有用。
常見問題
AI 生成的 Schema 最常見的問題:
- 缺少索引:AI 通常只生成基本結構,不會考慮查詢效能
- 正規化不足:可能把太多資料塞在同一張表
- 缺少約束:NOT NULL、UNIQUE、CHECK 約束經常被省略
- 沒有安全設定:敏感欄位沒有加密、沒有 row-level security
- 沒有 migration 策略:只給最終 Schema,沒有考慮如何從現有資料庫遷移
審查清單
- 每個表是否有合適的 primary key?
- 外鍵關聯是否正確?cascade 設定是否合理?
- 常用查詢欄位是否有索引?
- 欄位的資料類型是否最適合?(例如用 TIMESTAMP 而不是 VARCHAR 存時間)
- 是否有必要的 UNIQUE 和 CHECK 約束?
- 敏感欄位是否標記了加密需求?
- 是否考慮了未來的擴展性?
安全設定
- 欄位加密:PII 欄位使用 AES-256 加密
- 存取控制:用資料庫角色限制不同應用程式的存取範圍
- 稽核日誌:對敏感表啟用 audit trail
- 備份加密:資料庫備份也必須加密
- 連線安全:強制使用 SSL 連線
常見問題
AI 生成的 Schema 可以直接用嗎?
建議不要。AI 生成的 Schema 通常功能正確,但可能缺少索引、約束和安全設定。至少要經過人工審查和效能測試。
用什麼工具讓 AI 設計資料庫最好?
Claude 和 ChatGPT 都擅長從需求生成 SQL Schema。如果用 Cursor,可以讓它直接在你的 migration 檔案中生成。
敏感資料欄位要怎麼處理?
身分證號、信用卡號等敏感欄位必須加密儲存(Application-level encryption)。密碼用 bcrypt 雜湊。個資欄位標記 PII 標籤以便合規稽核。