对不起,如果以前有人问过这个问题,但我尝试寻找类似的东西但找不到任何东西。
我有三个表:users、hobbies 和 user_hobbies(链接前两个)。我想根据他们的爱好计算两个用户之间的相似度。为此,我首先需要两组:用户 A 的爱好和用户 B 的爱好,我可以通过两个简单的查询来获取它们。由于其他原因,我还必须在一个 php 文件中计算这两个集合,所以它们可以在两个数组中用于下一步:
我必须计算他们的共同爱好(即集合的交集)。
想法#1:有两个数组,我可以通过一些方法计算公共元素。
想法 #2:我可以进行第三次查询(例如SELECT hobby FROM user_hobbies WHERE user_id IN ('uid_A', 'uid_B') GROUP BY hobby HAVING COUNT (*) = 2
),而不会打扰自己。
我想我的问题是关于性能的。是手动计算更快还是mysql查询更快?