Facebook - лучший способ сделать FQL «присоединиться» к Event и Event_member?

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_Possosbility (три я думаю), но в идеале я бы предпочел сделать это в одном вызове FQL.

Это было полезно?

Решение

Нет способа сделать присоединение, как вы можете использовать Fql.multiquery Чтобы ввести 4 запроса в один звонок. 4 запроса будут по 1 каждый для 4 возможные ответы на мероприятия: посещение, неуверенное, отклонено и не так.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top