2010-04-06 76 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将形成组合键)的关系表。

取决于你的意思是由

歌曲特定的数据

将决定该模式应当如何修改。