Graphql: добавление поля в таблицу соединений

У меня есть два набора записей со следующей схемой

type Player {
    id: ID! @unique
    name: String!
    links: [NPC!]! @relation(name: 'linkedNpcs')
}

type NPC {
        id: ID! @unique
        name: String!
        playerLinks: [Player!]! @relation(name: 'linkedNpcs')
}

Я хочу добавить к linkedNpcs дополнительное поле под названием relationType.

Как мне записать это в свой файл types.graphql? Каждая ссылка player-npc должна содержать уникальную запись, и, поскольку это отношение «многие ко многим», имеет смысл, что эти метаданные должны существовать в таблице соединения.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
0
485
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ответил через форумы graphcool: https://www.graph.cool/forum/t/adding-a-field-to-a-relation-table-in-prisma/3086/2

спасибо @matic!

enum RelationType {
  A
  B
  C
}

type Player {
  id: ID! @unique
  name: String!
  links: [PlayerNPC!]! @relation(name: 'linkedPlayer')
}

type PlayerNPC {
  id: ID! @unique

  relationType: RelationType!

  player: Player! @relation(name: 'linkedPlayer')
  npc: NPC! @relation(name: 'linkedNPC')
}

type NPC {
  id: ID! @unique
  name: String!
  links: [PlayerNPC!]! @relation(name: ‘linkedNPC’)
}

Другие вопросы по теме