2

这是我的 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 用于我的 prisma 数据库。如何建立preferredZone 与Zone 之间的关系。并首选Shift到Shift。

4

1 回答 1

6

您需要命名关系,因为您在相同类型之间有两个关系(Driver <-> Shift 和 Driver <-> 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") 
}
于 2019-03-08T17:42:36.743 回答