Php Facebook应用程序-基础数据库设计

Php Facebook应用程序-基础数据库设计,php,mysql,database-design,facebook,Php,Mysql,Database Design,Facebook,我的用户表(另一台服务器上的mysql db)有一个FaceBookId列。我如何按朋友筛选它 我是说 Select * from User where FacebookId in SomeTypeOfGetFriends(of me ... the logged in user) 最好的办法是什么? 我应该先在数组中获取好友,然后在(数组)中执行FacebookId吗 ? 或: 对于每个登录的用户,我可以这样做:在第一个页面上,当他们登录时,我可以保存他/她的所有朋友,只需在一个表中保存I

我的用户表(另一台服务器上的mysql db)有一个FaceBookId列。我如何按朋友筛选它

我是说

 Select * from User where FacebookId in SomeTypeOfGetFriends(of me ... the logged in user)
最好的办法是什么? 我应该先在数组中获取好友,然后在(数组)中执行FacebookId吗 ?

或:

对于每个登录的用户,我可以这样做:在第一个页面上,当他们登录时,我可以保存他/她的所有朋友,只需在一个表中保存ID-s,看起来像:ftbl(userloggedinfbid INT,friendsfbid INT)。每次他登录我都会这样做一次。然后我会加入。但这样我就可以存储用户之间的连接,facebook已经做到了。我为什么要重新存储它们


我不确定重新存储友谊类型的连接是否适合FB。

我认为您最好看看PHP SDK和新的Graph API

在应用程序上对用户进行身份验证后,可以调用
friends.getAppUsers
API方法返回当前登录用户的朋友,他们也使用当前应用程序。用法示例:

$friends = $facebook->api(array('method' => 'friends.getAppUsers'));
首先

我不确定你是否需要重新储存 友谊型的关系甚至还可以 与FB合作

完全可以。事实上,他们甚至允许你订阅用户的好友。我不是建议你走这条路

其次,在我自己的应用程序中,我完全按照您的建议进行操作。一个大的ol'
IN()
语句(与发布的API调用MartinBean结合使用)。但您也可以使用临时表实现这些类型的查询

此外,仅供参考,您不能使用
INT
列类型来存储Facebook ID,这些ID是64位整数。使用
VARCHAR
BIGINT