Как получить данные из таблицы отношений MySql в Prisma - PullRequest
0 голосов
/ 21 мая 2018

В 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.Но он не создал ни одного столбца для пассажира, отправления, пункта назначения в таблице «Ride».

Он разделяет создает таблицу отношений для этого, например _PassengerToRide, _OriginToRide и _DestinationToRide.

Отсутствиеустановление отношений в таблице "Ride", я не смог получить подробности из таблиц Passenger, Origin и Destination при запросе "rides ()".Это правильный способ определения datamodel.graphql.(Изм)

1 Ответ

0 голосов
/ 22 мая 2018

Исходя из вашего описания, этот запрос должен «просто работать»:

query {
  rides {
    feedback
    passenger {
      id
    }
    origin {
      id
    }
    destination {
      id
    }
  }
}

Prisma использует упомянутый вами подход с таблицей отношений, чтобы отслеживать, относятся ли отношения между двумя узлами, например, к таблице _OriginToRideотношение @relation(name: "OriginToRide") из вашей модели данных.

Вам не нужно ничего менять на уровне SQL для последующего соединения отношений.

Примечание: ПримечаниеВышеуказанное относится к коннекторам базы данных Prisma с активированными миграциями .Если ваш соединитель не выполняет миграцию, поддерживаются различные подходы для представления отношений.Соответствующая модель данных для поддержки этого может быть сгенерирована путем интроспекции вашей существующей схемы базы данных.

...