資料庫設計的子類型與超類型
背景
在資料庫設計中,決定是否使用子類型。當特定類型的資料具有區別於其他類型的附加屬性或屬性時,將使用子類型。這種方法涉及為每個子類型建立單獨的表,從而可能產生大量表。
範例:書籍和文章的註解
考慮一個包含三個主表的資料庫:BOOKS、ARTICLES、和註釋。每本書和文章可以有多個註解。初始設計將註解指派給單一NOTES表,其中包含以下列:
- note_id
- note_type
- note_type_id
- note
使用分離的替代設計表格
另一個設計建議使用五個表格:
筆記
文章
筆記文章
筆記- book_notes
- article_notes
-
這個設計將書籍和文章註釋分開,簡化資料
每種設計的優缺點
子類型設計(現有設計)的優點:-
- 透過合併註解簡化資料儲存在一張表中。
僅儲存註解來避免報表一次。 需要較少的資料檢索連線。
- 子類型設計的缺點:
-
- 可能導致資料異常,如筆記型別可以改變。
如果筆記類型管理起來可能會很複雜
超類型設計(替代設計)的優點:通過明確定義超類型和子類型關係來促進資料完整性。 允許輕鬆添加新的出版物類型(例如,雜誌)。 提供了更清晰的資料層次結構和關係表示。 超類型/子類型方法修改後的方法建議使用具有兩個子類型的超類型發布表:書籍和文章。該模型將允許單一註釋表具有出版物的外鍵,從而能夠跨所有出版物類型(書籍、文章、雜誌等)進行連結。
以上是子類型或超類型:哪種資料庫設計最能處理多型資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!