2012-04-01 69 views
4

我有一個使用PHP編寫的頁面,其中包含歌曲播放列表。當用戶收聽歌曲時,我有一些JavaScript運行一些PHP來更新MySQL數據庫中增加「播放次數」數字的字段。多個月的跟蹤播放次數

這對於一首歌曲收聽的次數總計很好,但我想知道是否有人對如何獲得歌曲有任何建議,這樣我就可以輕鬆地按月或按星期分列播放次數一首特別的歌曲。

回答

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 ? 
+0

+1,我會走的更遠,並補充說,如果你的數據集較大(> 1萬行),考慮創建「彙總」表(例如user_plays_agg,user_plays_2012-01 ......),已經有按天計數和我的月。 – 2012-04-01 20:23:06

+0

太好了,這正是我需要實現,而不是更加困難又是什麼我已經在做。謝謝! – JackBurton 2012-04-01 20:38:27

1

你需要存儲更多的細節不僅僅是一個總播放次數。我會介紹一個額外的表來記錄所有的回放事件,存儲軌道的ID和時間戳。然後你可以在這個表格中查詢任何日期之間與特定曲目相關的所有劇本。

顯然查詢表龐大類似的東西,你會想緩存。