В datamodel.graphql
type Ride {
rideId: String
productId: String
passenger: Passenger
origin: Origin
destination: Destination
dateTime: DateTime
feedback: String
}
type Passenger {
id: ID! @unique
firstName: String
lastName: String
}
type Destination {
# The unique ID of the destination.
id: ID! @unique
latitude: Float
longitude: Float
address: String
}
type Origin {
id: ID! @unique
latitude: Float
longitude: Float
address: String
}
type Report {
productId: String
passenger: Passenger
description: String
}
Я развернул эту модель данных и с ее помощью генерирует MySql Db, автоматические запросы, мутации.
Он создает таблицы «Поездка», «Пассажир», «Отчет» и «Происхождение» в MySql. Но он не создал столбца для пассажира, отправления, назначения в таблице «Поездка».
Он разделяет, создает для этого таблицу отношений, например _PassengerToRide, _OriginToRide и _DestinationToRide.
Отсутствие установления связи в таблице «Поездка», я не мог получить подробную информацию из таблиц «Пассажир», «Исходная точка» и «Пункт назначения», когда я запрашивал «rides ()». Это правильный способ определения datamodel.graphql. (отредактировано)





Судя по вашему описанию, этот запрос должен «просто работать»:
query {
rides {
feedback
passenger {
id
}
origin {
id
}
destination {
id
}
}
}
Prisma использует упомянутый вами подход таблицы отношений, чтобы отслеживать, связаны ли отношения между двумя узлами, например, таблица _OriginToRide с отношением @relation(name: "OriginToRide") из вашей модели данных.
Вам не нужно ничего менять на уровне SQL, чтобы впоследствии связать отношения.
Note: The above applies to Prisma database connectors with activated migrations. If your connector doesn't do migrations, different approaches to represent relations are supported. The respective datamodel to support this can be generated by introspecting your existing database schema.
Что делать, если ваша соединительная таблица не названа с подчеркиванием?