這是更多關於我如何處理這個問題的一般問題。Php歌曲像計數器
我有一個音頻播放器。沒有關於歌曲的數據存儲在數據庫中。我想用數據庫來計算每首歌曲的喜歡度。我的問題是我將如何組織這個?
1. 如果我預先在數據庫中列出所有的歌曲,併爲喜歡的列添加一列,那麼我會在哪裏跟蹤用戶的IP地址? (不知道是否有更好的方法比使用IP地址?)所以我多次防止同一用戶投票。
2. 每次用戶喜歡一首歌,我會在數據庫中存儲{歌曲標題,如count,user ip}(也許是別的)。但是,我最終會得到不同的用戶IP地址的同一首歌的多行,所以在這種情況下,我將如何跟蹤每首歌的喜歡?
表1 {歌曲標題,喜歡計數},表2 {歌曲標題,用戶IP,日期戳},他們只與歌曲標題連接?用戶喜歡,我填充這兩個表,如果他們還沒有喜歡(基於用戶IP)。 (我知道同一用戶可以從不同的IP登錄,不同的用戶可以從相同的IP登錄,但我不知道是否有更好的方法來跟蹤同一用戶的重複喜歡)。爲什麼我需要日期戳? – Toniq
表1 {song_id,song_title,like_count},表2 {user_id,...},表3 {song_id,user_id}。表三(歌曲喜歡)連接用戶表和歌曲表。每次用戶喜歡一首歌曲時,新的記錄被添加到表3中。如果您擔心重複,請在將表添加到表3之前檢查記錄是否存在。 – Butsuri