帮助我的Facebook应用程序的数据库架构

时间:2011-08-15 03:53:47

标签: facebook

我正在编写一个Facebook应用程序,用户可以访问他们的页面。我正在尝试列出提出这个问题的最佳方案。以下是一些变量:

  • 用户可能拥有多个Facebook帐户
  • 需要将Facebook帐户绑定到我的数据库的MemberID
  • 我有不同的Facebook应用程序,用户可以使用
  • 我需要存储页面ID和访问令牌的引用以及用户的访问令牌

最有意义的是:存储页面及其访问权限?由于页面的访问令牌与用户绑定,因此您似乎可以创建另一个表。但是我相信,自从PageID& UserID将永远不会相同。我是否正确,或者有人可以提出不同的建议吗?

CREATE TABLE `Facebook_Users` (                                                              
                  `FacebookUser_ID` bigint(22) NOT NULL,                                                     
                  `FacebookUser_MemberID` int(11) NOT NULL,                                                  
                  `FacebookUser_Name` varchar(200) NOT NULL,                                                 
                  `FacebookUser_Email` varchar(150) default NULL,                                            
                  `FacebookUser_Birthday` date default NULL,                                                 
                  `FacebookUser_Gender` varchar(50) default NULL,                                            
                  `LastUpdatedAt` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,  
                  PRIMARY KEY  (`FacebookUser_ID`)                                                           
                ) ENGINE=MyISAM DEFAULT CHARSET=latin1                                                       

CREATE TABLE `Facebook_Tokens` (                                                                                     
                   `FacebookTokens_ID` int(11) NOT NULL auto_increment,                                                               
                   `FacebookTokens_UserID` bigint(22) NOT NULL,
                   `FacebookTokens_ApplicationID` int(11) NOT NULL,                                                                   
                   `FacebookTokens_FacebookToken` varchar(100) NOT NULL,                                                              
                   `FacebookTokens_Permissions` text,                                                                                    
                   `LastUpdatedAt` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,                          
                   PRIMARY KEY  (`FacebookTokens_ID`),                                                                                
                   UNIQUE KEY `MemberFacebook` (`FacebookTokens_UserID`,`FacebookTokens_ApplicationID`)                                       
                 ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 

1 个答案:

答案 0 :(得分:0)

不确定您的计划是什么,但是您是正确的,页面ID和用户ID永远不会共享相同的ID。另请注意,用户访问令牌!=页面访问令牌。当您拥有用户的访问令牌时,您需要检索特定页面的访问令牌。如果您打算在想要操作页面时检索特定页面的访问令牌,那么最好将其合并到一个表中,其中用户访问令牌只是用户表上的一列,因为访问令牌为用户关系是1-1(除非你有多个应用程序,看起来你可能正在做什么)。