我有一个用PHP编写的页面,其中包含歌曲播放列表。当用户收听歌曲时,我有一些javascript运行一些PHP来更新MySQL数据库中的一个字段,该字段增加“播放计数”数字。
这对于一首歌的收听总数来说是好的,但是我想知道是否有人有任何关于如何获得它的建议所以我可以很容易地按月或按周分解特别的歌。
答案 0 :(得分:4)
您需要在数据库中添加一个表,以跟踪时间戳,歌曲和用户。您仍应将play count
号码保留在users
表中,以便于查询。但如果你想按日期分解比赛数量,你需要另一张桌子。
像
这样的东西user_plays
----------
play_id
user_id
song_id
date_played
然后,您可以对该表运行查询,以获取日期范围的播放次数。
对于用户:
SELECT COUNT(play_id) as num_plays
FROM user_plays
WHERE user_id = ? AND date_played BETWEEN ? AND ?
对于一首歌:
SELECT COUNT(play_id) as num_plays
FROM user_plays
WHERE song_id = ? AND date_played BETWEEN ? AND ?
答案 1 :(得分:1)
您需要存储更多详细信息,而不仅仅是总播放次数。我将引入一个附加表来记录所有播放事件,存储轨道的ID和时间戳。然后,您可以在此表格中查询与任何日期之间的特定曲目相关的所有播放。
显然,查询这样一个巨大的表是你想要缓存的东西。