Можно ли создать в Prisma два и более отношения к модели?

Я пытаюсь создать два отношения к модели в datamodel.prisma

datamodel.prisma

type User {
  id: ID! @id 
  user_id: String! @unique
  username: String!
  email: String! @unique
}

type Operation {
  id: ID! @id
  teams: [User] @relation(link: INLINE)
  created_by: User @relation(link: INLINE)
}

Когда я пытаюсь развернуть, я получаю сообщение об ошибке

Ошибка

Errors:

  Operation
    ✖ The relation field `teams` must specify a `@relation` directive: `@relation(name: "MyRelation")`
    ✖ The relation field `created_by` must specify a `@relation` directive: `@relation(name: "MyRelation")`

Я хочу добиться того, чтобы операция могла иметь несколько членов (от одного до многих) и могла быть создана только одним членом (один к одному). Как я могу добиться этого в Prisma?


person Kinara Nyakaru    schedule 27.05.2020    source источник


Ответы (1)


Не могли бы вы попробовать создать его вот так:

type User {
  id: ID! @id
  user_id: String! @unique
  username: String!
  email: String! @unique
}

type Operation {
  id: ID! @id
  teams: [User] @relation(name: "Teams", link: TABLE)
  created_by: User @relation(name: "Createdby", link: TABLE)
}

Поле name необходимо при создании нескольких отношений к одной и той же модели. Также я предполагаю, что вы используете Postgres.

person Ryan    schedule 28.05.2020
comment
Я использую Mongo. Итак, я немного изменил ваш ответ, чтобы он работал на меня, но теперь я получаю эту ошибку: `` Вы пытаетесь установить отношение Createdby с Operation на User и предоставляете только директиву отношения с именем на Operation. Также укажите директиву отношения с таким же именем в поле отношения на User, указывающее на Operation. `` '' - person Kinara Nyakaru; 28.05.2020
comment
Работает ли это: type User { id: ID! @id user_id: String! @unique username: String! email: String! @unique operation_owner: Operation @relation(name: "Createdby", link: TABLE) } type Operation { id: ID! @id teams: [User] @relation(name: "Teams", link: TABLE) created_by: User @relation(name: "Createdby", link: TABLE) } - person Ryan; 28.05.2020