🎯 什麼情境該想到我

當你「有一個繼承階層要存進資料庫,想用一張表全裝、查詢時不用 join」的時候。

⚙️ 怎麼用(步驟 / 公式)

意圖:把整個繼承階層的所有類別都存進同一張表,用一個型別欄位區分每列屬於哪個子類別。

做法要點:

  • 一張表包含所有子類別可能用到的欄位;某列用不到的欄位就留空(NULL)。
  • 用一個 type / discriminator 欄位標明該列對應的具體類別。
  • 讀寫任何子類別都不需要 join,查詢快、對應簡單。
  • 三種繼承對應中最省 join 的一種。

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 表會有很多空欄位,浪費空間、語意較弱、不易加非空約束。
  • 所有子類別欄位擠一張表,欄位多時難維護、容易變寬表。
  • 想正規化、少空欄位改用類別表繼承;想各自獨立表改用具象表繼承。

🔗 相關工具