Как создать несколько отношений к одной и той же области в призме - PullRequest
1 голос
/ 08 марта 2019

Вот соответствующая часть моего файла 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") 
}

Здесь я хочу создать отношение для предпочитаемых зон и предпочтительных сдвигов типа Зона и Сдвиг в соответствии с созданной мной моделью данных.это односторонние отношения.

Поле отношения preferredShift должно указывать директиву @relation: @relation(name: "MyRelation"), Поле отношения preferredZone должно указывать директиву @relation: @relation(name: "MyRelation")

Яиспользуя PostgreSQL для моей базы данных призмы.Как построить отношения между предпочитаемой зоной и зоной.и предпочел Shift to Shift.

1 Ответ

1 голос
/ 08 марта 2019

Вам необходимо назвать отношения, так как у вас есть два отношения между одними и теми же типами (обе зоны Driver <-> Shift и Driver <-> соединены двумя связями).

В подобных случаях 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") 
}
...