2011-08-15 1 views
1

私は、ユーザーが自分のページにアクセスできるようにFacebookアプリケーションを作成しています。私はこの問題を引き起こす最良の計画を立てようとしています。ここではいくつかの変数は次のとおりです。Facebookアプリケーションのデータベーススキーマに関するヘルプ

  • ユーザーが
  • つ以上のFacebookのアカウントを持っているかもしれない、私は別のFacebookアプリケーションのユーザーを持っている私のデータベース
  • のMEMBERIDにFacebookのアカウントを結びつけるために必要
  • を使用することができ、私は保存する必要がありますユーザーのアクセストークンと一緒にページIDとアクセストークンを参照する

ページとそのアクセストークンを格納するのにもっともな意味は?ページのアクセストークンはユーザーに関連付けられているため、別のテーブルを作成するように見えます。しかし、私は、PageID & UserIDが決して同じではないので、Facebookがトークンテーブルの下にそれをすべて格納すると信じています。正しいのですか、誰かが何か違うものを提案できますか?

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 

答えて

0

あなたが何をしようとしているのかはっきりしていませんが、正しいですが、ページIDとユーザーIDは同じIDを共有しません。また、ユーザーアクセストークン!=ページアクセストークンに注意してください。ユーザーのアクセストークンを取得したら、特定のページのアクセストークンを取得する必要があります。ページを操作するときに特定のページのアクセストークンを取得する予定がある場合は、ユーザートークンがユーザーテーブルの列である1つのテーブルに統合する方がよいユーザーの関係は1-1です(複数のアプリを格納している場合を除きます)。

+0

PageIDの別の列を作成しますか? PageIDが空の場合、そのユーザーのトークンよりも。 ユーザーが自分のFacebookにアクセスできるようにすると、自分のアカウントを引き出しますので、管理しているページが2ページあれば、3つのエントリを挿入します。 'ユーザID = 12345 PAGEID = "" アプリケーションID = 1 FacebookToken = jr3kjrmdefj9023jrkl 権限= array' 'ユーザID = 12345 PAGEID = 903893083 アプリケーションID = 1 FacebookToken = fdmkfdflsfkjew 権限= array' 'ユーザーID = 12345 PageID = 3278973890 ApplicationID = 1 FacebookToken = dwpdmfcdfdsscm 権限=アレイ ' –

+0

もう一度、私は本当に助ける十分なコンテキストがありません。限られた細部を考えれば、私が最善のアプローチをとるのはとても難しいです。 –

関連する問題