我設計數據庫以包含一個表reference
,類型與列type
即幾個預定義值(例如,book
,movie
,magazine
,等)中的一個。我打算隨着時間的推移擴大可能的價值範圍(例如,如果我意識到我錯過了academic_paper
類型,我希望能夠將其納入)。SQL數據庫設計:存儲行
最簡單的解決方案似乎只是將表示類型的字符串存儲到表中。但這聽起來像會造成很多浪費空間。
我想到的另一個解決方案是創建一個新表reference_types
,其中type
列在其外鍵引用。這似乎有額外的好處,確保有效的外鍵(以便我不會意外錯誤地在我的代碼中的某處「雜誌」),可能允許更快的查詢某種類型的所有媒體(因爲整數比較應該是多比字符串比較更快),但也會減慢我的應用程序,因爲每當我需要引用類型時都需要連接,並且由於這些額外的連接可能會使邏輯複雜化。
你對這個問題的模式設計有什麼想法?