🎯 什麼情境該想到我
當你「有繼承階層,想讓每個類別各自對應一張表、資料表保持正規化」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:讓繼承階層中每個類別(含父類別)各自對應一張表,用 join 把一個物件的父子欄位組合起來。
做法要點:
- 父類別一張表放共通欄位,每個子類別一張表放其專屬欄位。
- 各表以相同主鍵相連;載入某物件時 join 父表與對應子表取得完整欄位。
- 資料表對應類別結構、少有空欄位,關係清楚、正規化程度高。
- 三種繼承對應中最貼近物件模型的一種。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 讀取單一物件需要多次 join,深階層時效能較差。
- 表數量多,schema 較繁瑣。
- 追求查詢速度、可容忍空欄位改用單表繼承;不想 join 改用具象表繼承。
🔗 相關工具
- 單表繼承 Single Table Inheritance(一張表全裝、免 join 的對照)
- 具象表繼承 Concrete Table Inheritance(每個具象類別獨立完整表的對照)
- 繼承對應器 Inheritance Mappers(組織繼承載入 / 儲存)
- 企業應用架構模式