🎯 什麼情境該想到我

當你要設計「物件如何對應到資料庫」,或在不同 ORM 風格間抉擇、遇到 ORM 效能問題時。

⚙️ 怎麼用(認識底層模式)

  1. Active Record:物件自己包含資料庫存取邏輯(user.save())。簡單、快速,適合邏輯不複雜的 CRUD(Rails、Eloquent)。
  2. Data Mapper:物件與資料庫完全分離,由 Mapper 負責搬運。乾淨、可測、領域物件不依賴 DB,適合複雜領域(Hibernate、Prisma、TypeORM 的 mapper 風格)。
  3. Unit of Work:一次交易內追蹤所有變更,最後統一提交/回滾 → 減少 DB 往返、保證一致。
  4. Identity Map:同一物件一次請求只載入一次,避免重複查詢與不一致。

🧪 我實際套用的紀錄

  • 2026-07-15:(待填)

⚠️ 注意

  • ORM 隱藏了 SQL,容易踩 N+1 查詢與意外的大量載入;效能敏感處要看實際 SQL(呼應 工具-交易與隔離等級)。

🔗 相關工具