我目前正在計劃開發音樂流應用程序。我想知道在服務器上的表格中作爲主鍵會更好。 ID int或唯一字符串。數據庫設計Primay Key,ID vs字符串
方法1:
歌曲表: SongID(INT),名稱(字符串),*藝術家**(字符串),長度(INT),*相冊**(串)
流派表 類型(串),名稱(字符串)
SongGenre: *** SongID ****(INT),***戈NRE ****(字符串)
方法2
歌曲表: SongID(INT),名稱(字符串),* ArtistID **(INT),長度(INT) * ** ALBUMID(INT)
流派表 GenreID(INT),名稱(字符串)
SongGenre: *** SongID ****( INT),*** GenreID ****(INT)
重點:大膽 =主鍵,*字段** =外鍵
我目前正在設計使用方法2,因爲我相信它將加快查找性能,並且佔用更少的空間,因爲int需要的空間少於字符串。
是否有任何理由,這是不是一個好主意?有什麼我應該知道的?
+1絕對。一個ID應該(幾乎總是)是一個INT - 其他任何東西都沒有什麼意義(除了少數選擇的情況) – 2010-03-31 09:39:31
我會補充說,你應該在類型名稱上加一個唯一索引以防止有名爲「布魯斯」的三種流派。如果存在的話,始終在自然鍵上添加一個唯一索引。 – HLGEM 2010-03-31 17:05:38
-1:這些是做出設計決定的錯誤原因。根據設計是否正確進行設計決策。然後,如果有性能問題,請根據需要進行調整和重新設計。 – 2010-04-16 18:10:30