簡體   English   中英

如何從Prisma中的MySql關系表獲取數據

[英]How to get data from MySql relation table in Prisma

在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”,“ Passenger”,“ Report”和“ Origin”表。 但是它沒有在“乘車”表中為旅客,始發地和目的地創建任何列。

它為此單獨創建一個關系表,例如_PassengerToRide,_OriginToRide和_DestinationToRide。

在“乘車”表中沒有建立關系,當我查詢“ rides()”時,無法從“乘客”,“始發地”和“目的地”表中獲取詳細信息。 這是定義datamodel.graphql的正確方法嗎? (編輯)

根據您的描述,此查詢應“有效”:

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

Prisma使用您提到的關系表方法來跟蹤兩個節點之間的關系,例如表_OriginToRide與數據模型中的@relation(name: "OriginToRide")關系相關。

之后,您無需在SQL級別上進行任何更改即可連接關系。

注意:以上內容適用於已激活遷移的 Prisma數據庫連接器。 如果您的連接器不進行遷移,則支持表示關系的其他方法。 可以通過對現有數據庫模式進行內部檢查來生成支持此操作的各個數據模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM