我有两张桌子:
用户
id, firstName, lastName, location (geography), facebookId
关注
userId, followerId, followDatetime
并且我想创建一个存储过程来向用户呈现建议(用户遵循),但是以有效的方式。存储过程应返回以下用户:
所有拥有Facebook ID的用户都可以在逗号分隔的FB ID列表中找到(此列表将作为参数提供给SP) - 优先级1
选择"我朋友的朋友" (我的朋友关注的用户) - 优先级2
基于位置的用户,距离为x公里 - 优先级3
所有姓名或姓氏与我的朋友相似的用户(我的朋友都是我关注的人) - 优先级4
我之前没有关注的所有其他用户,随机选择 - 优先级5
我希望结果只包含我尚未关注的用户,按优先级进行分页和排序,不会有重复的行。
我想为每个用户检索的列如下:
id, firstName, lastName, number of followers
实现这一目标的有效方法是什么?