这是更多关于我如何处理这个问题的一般问题。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