我们想介绍一项功能,让用户可以通过Facebook好友查看游戏结果。我们目前存储每个用户的facebook uid,当他们第一次注册我们的游戏时(社交登录)。我们的MySQL DB看起来像这样:
用户
结果
调用Facebook Graph API,我们可以生成以逗号分隔的列表朋友uid。因此,Facebook朋友过滤游戏结果的一种方法是:
我们将对此进行测试,但我担心使用IN子句会对性能产生影响(朋友列表可以是300 +)。
有没有人有使用不同方法的经验?
享受任何见解。感谢。
答案 0 :(得分:1)
我从不在我的数据库中使用user_id。虽然它最有可能是int(5) - 意味着更快,但有两个id只会令人困惑,你可能遇到这样的问题。
根据我开发Facebook应用程序的经验(现在大约1年半)我从未遇到过使用IN语句的问题,查询总是很快。只要你有一个很好的数据库架构和良好的PHP代码,你应该没问题。它只是一个排行榜或类似的排行榜。
您还可以通过AJAX调用加载该信息,这样用户就不会因长SQL查询而遇到延迟。
另一种选择是将每个用户的朋友存储在您每次更新的查找表中,但可能会稍微疏通,我认为这样做太费劲了。