У меня есть четыре таблицы
trip
|- id
|- name
weather_tag
|- id
|- name
|- weather_category_id
weather_category
|- id
|- name
bridge_trip_weather_tag
|- trip_id
|- weather_tag_id
Таблица bridge_trip_weather_tag
является таблицей мостов, позволяющей установить связь между многими и многими trip
и tag
. tag_category
группирует множество тегов по категориям.
Проблема, с которой я столкнулся при работе с graphQL, заключается в следующем:
query MyQuery {
trip {
name
weather_tags{
weather_tag{
name
weather_category {
name
}
}
}
}
}
вывод:
{
"trip": [
{
"name": "Breakfast",
"weather_tags": [
{
"weather_tag": {
"name": "Clear",
"weather_category": {
"name": "conditions"
}
},
{
"weather_tag": {
"name": "Partly Cloudy",
"weather_category": {
"name": "conditions"
}
}
},
{
"weather_tag": {
"name": "None",
"weather_category": {
"name": "precipitation"
}
}
}
}
]
}
Где я хотел бы запросить что-то как это
query MyQuery {
trip {
name
weather_tags{
weather_category{
name
weather_tags {
name
}
}
}
}
}
, чтобы дать что-то вроде этого желаемого результата, где weather_category является родителем для weather_tags
{
"trip": [
{
"name": "Breakfast",
"weather_category": [
{
"conditions": {
"weather_tags": [
{
"name": "Clear"
},
{
"name": "Partly Cloudy"
}
],
},
"precipitation": {
"weather_tags": [
{
"name": "None"
},
]
}
}
]
}
]
}
БД структурирована таким образом, что мне нужно будет только связать тег нижнего уровня с поездкой, а затем категория с тегом - категория вообще не связана с поездкой. Любые идеи, как я должен структурировать мою БД для достижения этого результата?