Facebook - 이벤트 및 Event_Member와 함께 FQL "Join"을 수행하는 가장 좋은 방법?

StackOverflow https://stackoverflow.com/questions/1045842

  •  20-08-2019
  •  | 
  •  

문제

Facebook 앱에서는 날짜 범위와 각 이벤트에 대한 RSVP 상태에 대한 사용자의 이벤트를 가져와야합니다.

사용자의 이벤트를 정상적으로 얻을 수 있지만 현재 각 이벤트의 RSVP 상태를 한 번에 하나씩 찾고 있으며 앱은 많은 이벤트가있는 사람들을 위해 시간을 초래하고 있습니다.

이런 식으로 사용자의 이벤트를 받고 있습니다.

$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'";

이것은 또한 이벤트별로 잘 작동하지만 앱 페이지는 각 이벤트가 매번 찾아보아야하기 때문에 사용자가 많은 이벤트를 가지고있을 때 시간이 걸립니다.

정상적인 SQL을 사용하면 조인으로 쉽게이 작업을 수행 할 수 있지만 FQL에서는 조인이 허용되지 않습니다.

가능한 한 가지 해결책은 다음과 같이 각 RSVP_STATUS 가능성을 통해 반복하여 배치로 수행하는 것입니다.

$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의 수로 줄어들지 만 (내 생각은 3 명), 이상적으로는 하나의 FQL 호출로 수행하는 것입니다.

도움이 되었습니까?

해결책

가입 방법은 없지만 사용할 수 있습니다. fql. 다중 퀴어 4 개의 쿼리를 단일 통화로 배치합니다. 4 개의 쿼리는 각각 1입니다 4 개의 가능한 이벤트 응답: 참석, 확실하지 않음, 거절하며, _replied.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top