每个用户都可以添加自己喜欢的自定义权重。
“我喜欢香蕉(7/10)和苹果(10/10)”
我想建议喜欢的用户,根据其他用户喜欢什么。
“你喜欢香蕉。你可能也喜欢苹果。”
sql表具有以下结构:
# users
- id
- ...
# likes
- id
- label (e.g. "apple")
- ...
# user_likes
- id
- user_id
- like_id
- weight
所需输出:
# 1. Suggestions for user ("You probably like apples!")
| like_id | relevance |
-----------------------
| 5 | 0.5 |
# 2. Suggestions for like ("Apples fit to bananas!")
| like_id | relevance |
-----------------------
| 5 | 0.8 |
我目前的想法是用php循环所有的记录,但这是不对的。
有什么最佳实践或算法吗?你知道吗?
提前谢谢!
重要提示:我找到了这个和其他的例子/副本来实现我的需要。这个问题可能会被我发现是重复的,但我对最新的最佳实践感兴趣。许多解决方案都有10年的历史。
1条答案
按热度按时间7lrncoxx1#
此查询将查找与给定用户共享一个或多个共同喜好的其他用户的所有喜好。然后,它将选择这些用户的平均like权重,以确定每个like的相关性。
sql处理示例数据-http://sqlfiddle.com/#!9/866825/2