这是我的datamodel.prisma文件的相关部分。
type Driver {
id: ID! @unique
zones: [Zone!] @relation(name: "DriverZones")
shifts: [Shift!] @relation(name: "DriverShifts")
preferredZone: Zone
preferredShift: Shift
}
type Shift {
id: ID! @unique
drivers: [Driver! ] @relation(name: "DriverShifts")
}
type Zone {
id: ID! @unique
drivers: [Driver! ] @relation(name: "DriverZones")
}
在这里,我想根据我创建的数据模型将preferredZone和preferredShift的关系创建为Zone和Shift类型。 这是一种单向的关系。
关系字段preferredShift
必须指定一个@relation
伪指令:@relation(name: "MyRelation")
,关系字段preferredZone
必须指定一个@relation
伪指令:@relation(name: "MyRelation")
我在我的棱镜数据库中使用了PostgreSQL。如何建立PreferredZone与Zone之间的关系。和preferredShift到Shift。
答案 0 :(得分:0)
您需要命名这些关系,因为在相同类型之间有两个关系(驱动程序<-> Shift和驱动程序<-> Zone分别通过两个关系连接)。
在这种情况下,Prisma要求您命名关系,这就是您发布的错误消息的含义。我认为该数据模型应该可以工作:
type Driver {
id: ID! @unique
zones: [Zone!] @relation(name: "DriverZones")
shifts: [Shift!] @relation(name: "DriverShifts")
preferredZone: Zone @relation(name: "PreferredZone")
preferredShift: Shift @relation(name: "PreferredShift")
}
type Shift {
id: ID! @unique
drivers: [Driver! ] @relation(name: "DriverShifts")
}
type Zone {
id: ID! @unique
drivers: [Driver! ] @relation(name: "DriverZones")
}