在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。
在“Ride”表中缺少关系建立,当我查询“rides()”时,我无法从Passenger,Origin和Destination表中获取详细信息。这是定义datamodel.graphql的正确方法吗? (编辑)的
答案 0 :(得分:0)
根据您的描述,此查询应该“正常工作”:
query {
rides {
feedback
passenger {
id
}
origin {
id
}
destination {
id
}
}
}
Prisma使用您提到的关系表方法来跟踪两个节点之间的关系,例如表_OriginToRide
是否与您的数据模型中的关系@relation(name: "OriginToRide")
相关。
您不必在SQL级别上更改任何内容以便之后连接关系。
注意:以上内容适用于使用已激活的迁移的Prisma数据库连接器。如果连接器不进行迁移,则支持表示关系的不同方法。可以通过introspecting现有数据库模式生成支持此功能的相应数据模型。