Facebook好友过滤数据库记录的最佳方法是什么?

时间:2011-05-26 02:20:41

标签: php mysql sql facebook facebook-graph-api

我们想介绍一项功能,让用户可以通过Facebook好友查看游戏结果。我们目前存储每个用户的facebook uid,当他们第一次注册我们的游戏时(社交登录)。我们的MySQL DB看起来像这样:

用户

  • USER_ID
  • facebook_uid

结果

  • USER_ID
  • 得分
  • resultdate

调用Facebook Graph API,我们可以生成以逗号分隔的列表朋友uid。因此,Facebook朋友过滤游戏结果的一种方法是:

  1. 使用好友列表然后
  2. 在User.facebook_uid字段上运行sql IN子句
  3. 将User.user_id加入Result.user_id
  4. 我们将对此进行测试,但我担心使用IN子句会对性能产生影响(朋友列表可以是300 +)。

    有没有人有使用不同方法的经验?

    享受任何见解。感谢。

1 个答案:

答案 0 :(得分:1)

我从不在我的数据库中使用user_id。虽然它最有可能是int(5) - 意味着更快,但有两个id只会令人困惑,你可能遇到这样的问题。

根据我开发Facebook应用程序的经验(现在大约1年半)我从未遇到过使用IN语句的问题,查询总是很快。只要你有一个很好的数据库架构和良好的PHP代码,你应该没问题。它只是一个排行榜或类似的排行榜。

您还可以通过AJAX调用加载该信息,这样用户就不会因长SQL查询而遇到延迟。

另一种选择是将每个用户的朋友存储在您每次更新的查找表中,但可能会稍微疏通,我认为这样做太费劲了。