У меня есть модель данных с тремя сущностями, которая выглядит следующим образом:
Event:
id
startTime
->>invitees
User:
id
type
->>invitations (Invitees entity)
Invitees:
rsvpState
->user
->event
-> = отношение один к одному
- >> = слишком много отношений
То, что я пытаюсь сделать, - это создать предикат, который возвращает все события, для которых пользователь определенного типа и идентификатора имеет rsvp'd "Y" и имеет startTime больше, чем сейчас. Самое близкое, что я дошел, это:
SUBQUERY (invites.user, $ x, $ x.id ==% i AND $ x.type ==% i) .invitations.rsvpState ==% @ AND startTime>% @
Это не дает мне никаких ошибок, хотя я все еще получаю странные результаты. Я думаю, я не до конца понимаю, как работают подзапросы.
Например, при выполнении .invitations.rsvpSate ==% @ проверяется, что у ВСЕХ пользователей, которые передают предикат, есть приглашение. У ЛЮБОГО из них есть приглашение.rsvpState == "Y".
При добавлении startTime>% @ в конец запроса проверяется, имеет ли ВСЕ результирующие события startTime>% @ или что ЛЮБОЕ из событий в результатах имеет startTime>% @?
Thx