🎯 什麼情境該想到我
當你「有繼承階層,想讓每個具象類別各自對應一張含全部欄位的獨立表、查詢完全不 join」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:為每個具象(可實例化)類別建立一張包含其繼承來的與自有的全部欄位的表;抽象父類別沒有表。
做法要點:
- 每張表自成一體,含該具象類別需要的所有欄位。
- 存取某個具象類別的物件只查它自己的表,完全不需要 join,單類查詢快。
- 沒有型別欄位;不同具象類別的資料互不干擾。
- 三種繼承對應中「每表獨立」的一種。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 共通欄位在多張表重複,改動父類別欄位要動多張表,維護麻煩。
- 主鍵需跨所有表唯一,較難管理。
- 想跨整個階層查詢時得 union 多張表;此時單表 / 類別表繼承更好。
🔗 相關工具
- 單表繼承 Single Table Inheritance(一張表全裝的對照)
- 類別表繼承 Class Table Inheritance(正規化、以 join 組合的對照)
- 繼承對應器 Inheritance Mappers(組織繼承載入 / 儲存)
- 企業應用架構模式