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

时间:2010-07-21 13:25:29

标签: php mysql database-design facebook

我的用户表(其他服务器上的mysql数据库)有一个FaceBookId列。我如何通过朋友过滤它?

我的意思是

 Select * from User where FacebookId in SomeTypeOfGetFriends(of me ... the logged in user)

最好的方法是什么? 我应该首先得到一个数组中的朋友,然后做一个FacebookId IN(数组) ?

OR:

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

我不确定使用FB重新存储友谊类型连接是否正常。

2 个答案:

答案 0 :(得分:0)

我认为你最好不要看PHP SDK和新的Graph API。

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

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

答案 1 :(得分:0)

首先

  

我不确定是否存储   友谊型连接甚至还可以   与FB。

完全没问题。事实上,他们甚至允许您为用户的朋友订阅real time updates。不是我建议你走这条路。

其次,在我自己的应用程序中,我正在完全你的建议。一个很大的'IN()语句(结合API调用Martin Bean发布)。但您也可以使用临时表来实现这些类型的查询。

此外,正如FYI一样,您不能使用INT列类型来存储Facebook ID,这些ID是64位整数。使用VARCHARBIGINT