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

有关我的Facebook应用程序的数据库架构的帮助,facebook,Facebook,我正在编写一个Facebook应用程序,用户可以在其中访问他们的页面。我正试图提出提出这个问题的最佳方案。以下是一些变量: 用户可能有多个Facebook帐户 需要将Facebook帐户绑定到我数据库的MemberID 我有不同的Facebook应用程序,用户可以使用 我需要存储一个引用,包括页面ID和访问令牌以及用户的访问令牌 最有意义的是:存储页面及其访问令牌?由于页面的访问令牌与用户绑定,因此您似乎要创建另一个表。但我相信Facebook会把这些都存储在tokens表下,因为PageI

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

  • 用户可能有多个Facebook帐户
  • 需要将Facebook帐户绑定到我数据库的MemberID
  • 我有不同的Facebook应用程序,用户可以使用
  • 我需要存储一个引用,包括页面ID和访问令牌以及用户的访问令牌
最有意义的是:存储页面及其访问令牌?由于页面的访问令牌与用户绑定,因此您似乎要创建另一个表。但我相信Facebook会把这些都存储在tokens表下,因为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 

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

那么为PageID创建另一列?如果PageID为空,那么它就是一个用户令牌。因此,当用户允许我访问他们的Facebook时,我会提取他们的帐户,因此如果他们有2个管理的页面,我会插入3个条目?
UserID=12345 PageID=“”ApplicationID=1 FacebookToken=jr3kjrmdefj9023jrkl权限=数组
UserID=12345 PageID=3278973890 ApplicationID=1 FacebookToken=dwpdmfcdfdsscm权限=数组