【发布时间】:2018-07-26 02:47:02
【问题描述】:
每个用户都可以使用自定义权重添加其喜欢。
“我喜欢香蕉 (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 循环所有记录,但这是不对的。
是否有任何最佳实践或算法?有什么想法吗?
提前致谢!
重要提示:我找到了this 和其他示例/重复项来实现我所需要的。我可能会将此问题检测为重复问题,但我对最新的最佳做法感兴趣。许多解决方案已有 10 年的历史。
【问题讨论】:
-
您是否有机会提供包含架构和示例数据的 SQL 小提琴?
-
SQL fiddle 供任何想要破解的人使用 - sqlfiddle.com/#!9/866825/2
标签: mysql sql database algorithm data-analysis