2010-04-06 73 views
1

我在MySQL數據庫中存儲了大量歌曲。這是我存放在「歌曲」表:存儲歌曲數據MySQL DB

CREATE TABLE `songs` (
    `song_id` int(10) unsigned NOT NULL auto_increment, 
    `song_artist` varchar(255) NOT NULL, 
    `song_track` varchar(255) NOT NULL, 
    `song_mix` varchar(255) NOT NULL, 
    `song_title` text NOT NULL, 
    `song_hash` varchar(40) NOT NULL, 
    `song_addtime` int(10) unsigned NOT NULL, 
    `song_source` text NOT NULL, 
    `song_file` varchar(255) NOT NULL, 
    PRIMARY KEY (`song_id`) 
) ENGINE=MyISAM AUTO_INCREMENT=1857 DEFAULT CHARSET=latin1 

現在,我想跟蹤的每一首歌有多少次了,和其他特定歌曲數據,涉及到的歌曲。我不想爲此添加字段到'歌曲'表格。如何將歌曲相關數據存儲爲更有效的方式?這裏最好的做法是什麼?

+0

您所說的「其他歌曲特定數據」將決定最佳做法。 – webbiedave 2010-04-06 18:21:26

+0

我不明白你爲什麼要創建另一個表,而不是添加更多的字段。 – Ben 2010-04-06 22:22:46

回答

5

如果它是1對1關係,則應將其添加到歌曲表中。在關係要求時向表中添加更多字段沒什麼問題。然後您可以使用SQL來增加每個播放的字段。

如果您想要跟蹤特定用戶播放歌曲的次數,可以使用另一種方法。您可以創建一個具有song_id, user_id, plays作爲字段(song_id和user_id將形成組合鍵)的關係表。

取決於你的意思是由

歌曲特定的數據

將決定該模式應當如何修改。