我有一个应用程序,可以让用户听音乐。每个艺术家都有为自己设定的特定流派。这些歌曲没有流派。
我需要一个推荐页面的基础上,什么歌曲流派的用户看起来时不时。
考虑这个例子。
我得到:用户Joe Artist Ben。有声学流派。有一首歌。艺术家亚历克斯。有风格的爵士,有一首歌。艺术家汉娜。有声学流派。有一首歌。
用户Joe听Alex的歌两次,听Ben的歌3次。在推荐页面中,应该显示Ben和Hannah。因为乔更喜欢听声学媒体。
我应该如何开始设计这个呢?我应该有一个表来跟踪这些数据吗?如果是,应该存在哪些列?
或者,我是否应该在加载推荐页面时进行某种聚合?
发布于 2011-01-10 21:10:00
你需要一个通过has_many在歌曲和用户之间加入。除了user_id和song_id之外,这个连接还会有一个监听计数器。然后,您可以找到与单个用户听过相同歌曲的用户,返回这些用户听得最多的歌曲,并由具有相同流派的用户首先订购,然后才是不具有相同流派的用户。
https://stackoverflow.com/questions/4646837
复制相似问题