Я размышляю над перестройкой приложения для рассадки еды. Я использую GraphQL для запроса посетителей и их гостей за столом на обеденном мероприятии (назначенное место). Предоставленная модель данных выглядит примерно так:
meal event 1
table A
attendee 1
guest 1
...
meal event 2
table L
attendee 1 (no guest this time)
...
Участник может посетить несколько мероприятий, например, на многодневной конференции. Этот участник может иметь гостя (ей) на мероприятии (ях) еды. Это может быть еще одна запись участника (два билета на питание, та же информация), отмеченная как гость, однако как участник и их гость (ы) должны сидеть за одним столом (не нужно, чтобы супруг (-а) находился на другой стороне комнаты для пример). У участников обычно будет один и тот же гость (и) на нескольких мероприятиях, но не всегда из-за стоимости или противоречивых гостевых обязательств или желания чередовать гостей за едой и т. Д. c.
Как бы я смоделировал это в Схема GraphQL? В базе данных я бы использовал таблицы соединений. Однако для клиентских запросов GraphQL и типов схем мне нужно смоделировать это немного иначе (я думаю?). Вот что у меня есть на данный момент:
type Attendee {
name: String
** Can't add guests here as this may change per event
}
type Event {
name: String
tables: [Table]
}
type Table {
name: String
attendees: [Attendee]
** How do I "tree" in guests here for attendees for this table?
}
На этом этапе мне нужен тип соединения, чтобы получать гостей на одного посетителя за стол за событие?