【问题标题】:Is it possible to create two or more relations to a model in prisma?是否可以在 prisma 中创建与模型的两个或多个关系?
【发布时间】:2020-09-14 17:04:48
【问题描述】:

我正在尝试在 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 中实现这一点?

【问题讨论】:

    标签: graphql datamodel prisma prisma-graphql


    【解决方案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。

    【讨论】:

    • 我正在使用 Mongo。所以我改变了你的答案有点为我工作,但我现在收到这个错误```你正在尝试将关系'Createdby'从Operation设置为User并且只提供一个名称为的关系指令Operation。还请在指向OperationUser 上的关系字段上提供相同命名的关系指令。 ```
    • 这个工作吗: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) }
    猜你喜欢
    • 2020-07-30
    • 2022-12-28
    • 2023-02-01
    • 2019-07-30
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多