2009-06-25 8 views
14

एक फेसबुक ऐप में मुझे एक तिथि सीमा के लिए उपयोगकर्ता की घटनाएं और प्रत्येक ईवेंट के लिए उसकी आरएसवीपी स्थिति प्राप्त करने की आवश्यकता है।फेसबुक - घटना और event_member के साथ FQL "शामिल" करने का सबसे अच्छा तरीका है?

मैं उपयोगकर्ता की घटनाओं को ठीक कर सकता हूं, लेकिन फिलहाल मैं एक बार में प्रत्येक ईवेंट के लिए आरएसवीपी स्थिति देख रहा हूं, और ऐप बड़ी संख्या में घटनाओं वाले लोगों के लिए समय निकाल रहा है।

मैं प्रयोक्ता की घटनाओं इस तरह से हो रही है:

$fql = "SELECT eid, name, start_time, end_time 
     FROM event 
     WHERE eid IN (SELECT eid 
         FROM event_member 
         WHERE uid = $user) 
      AND start_time > '$timestamp' 
     ORDER BY start_time"; 

यह हिस्सा ठीक काम कर रहा है।

और यहाँ है कि कैसे मैं एक समय में प्रत्येक घटना के लिए rsvp स्थिति, एक हो रही है: ऐप्लिकेशन पृष्ठ का समय समाप्त जब

$fql = "SELECT rsvp_status 
     FROM event_member 
     WHERE uid = $user 
      AND eid = '$event_id'"; 

यह भी एक घटना-दर-घटना के आधार पर ठीक काम करता है, लेकिन उपयोगकर्ता को कई घटनाएं होती हैं क्योंकि प्रत्येक ईवेंट को हर बार देखा जाना पड़ता है।

सामान्य एसक्यूएल के साथ, मैं आसानी से इसमें शामिल होने के साथ ऐसा कर सकता हूं, लेकिन एफक्यूएल में शामिल होने की अनुमति नहीं है।

$fql = "SELECT eid, name, start_time, end_time 
     FROM event 
     WHERE eid IN (SELECT eid 
      FROM event_member 
      WHERE uid = $user 
      and rsvp_status = 'attending') 
     AND start_time > '$timestamp' 
     ORDER BY start_time"; 

यह FQL की संख्या rsvp_possibilities की संख्या (तीन मुझे लगता है कि) करने के लिए नीचे कॉल को कम करेगा,:

एक संभव समाधान इस तरह प्रत्येक rsvp_status संभावना के माध्यम से पाशन, द्वारा बैचों में उन्हें करने के लिए है लेकिन आदर्श रूप में मैं इसे एक एफक्यूएल कॉल में करना चाहता हूं।

उत्तर

7

कोई जुड़ने का कोई तरीका नहीं है, हालांकि आप अपने 4 प्रश्नों को एक कॉल में बैच करने के लिए FQL.Multiquery का उपयोग कर सकते हैं। 4 possible event responses के लिए 4 प्रश्न 1 प्रत्येक होंगे: उपस्थित, अनिश्चित, अस्वीकार, और not_replied।

संबंधित मुद्दे