2014-05-21 55 views
0

上午傢伙,3NF正常化MySQL工作臺

林奮力看到以下這些表是如何被分解成3NF,我知道基於標準化的規則,但不能看到,這裏需要移動是如何的任何數據表看:

PlaylistID,PlaylistName,的TrackID,TRACKNAME,ALBUMID,ALBUMTITLE,GenreID,GenreName,TrackSeconds,TrackBytes

+0

這是列表,列或列表?這裏的細節不足以用於任何類型的答案。 – Frazz

+0

對不起,這是一個表的列名稱,即「音樂信息」 – Soprono

回答

1

的問題不是很清楚,但在這裏不用

你應該創建一個單獨的TABL E對於每個ID列...,然後移動到該表中的所有相關列:

Playlist(ID, Name) 
Track(ID, Name, Seconds, Bytes, AlbumID, GenreID) 
Album(ID, Title) 
Genre(ID, Name) 

既然你可能會想有相同的軌道在一個以上的播放列表,你需要一個多到多關係,你應該有一個關係表處理:

PlaylistTrack(PlaylistID, TrackID) 

這滿足了3NF,作爲播放列表名稱,專輯名稱和流派名稱不重複的多個行。