在資料庫設計中使用子類型或單獨的表進行註解
設計資料庫時,出現一個常見問題:是否應該子類型是在單一表中使用,還是應該為不同類型的資料建立單獨的表?在本例中,我們有一個包含三個主要表的資料庫:BOOKS、ARTICLES 和 NOTES。最初,使用單一NOTES表來儲存書籍和文章的註釋。然而,人們對該設計的規範化和效率提出了擔憂。
一個潛在的替代方法是利用五個表格:BOOKS、ARTICLES、NOTES、BOOK_NOTES 和 ARTICLE_NOTES。這種結構允許單獨儲存書籍註釋和文章註釋,並在註釋表中使用更簡單的列定義。
使用子類型還是單獨的表之間的決定取決於資料的具體性質。當子類型具有唯一且不同的列時,通常會使用子類型。然而,在這種情況下,BOOK_NOTES 和 ARTICLE_NOTES 表在結構上沒有顯著差異。
更最佳化的方法可能涉及建立一個超類型表 Publication,其中 Book 和 Article 作為子類型。這將允許單一註釋表具有發布的外鍵。由於 Publication 的主鍵與 Book(或 Article)的主鍵相同,因此它有利於 Publication、Book 或 Article 的高效連接。此設計還提供了添加新出版物類型(例如雜誌)的靈活性,而無需修改 NOTES 表。
例如,以下表格架構舉例說明了這種方法:
TABLE Publication ( ID (PK)
以上是註釋的子類型或單獨的表:哪種資料庫設計最好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!