首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >GraphQL Prisma -定义链接到两个用户的“投票”类型

GraphQL Prisma -定义链接到两个用户的“投票”类型
EN

Stack Overflow用户
提问于 2018-03-28 14:11:53
回答 1查看 181关注 0票数 2

我刚开始用Prisma。以前主要是使用firebase和mongodb来定义我的模式。

我试图定义以下模式:

代码语言:javascript
代码运行次数:0
运行
复制
Vote {
    id: ID!
    from: User! # The user who voted
    for: User! # The user that received a vote
    rate: Float!
}

基本上,我想要实现的是让用户投票给其他用户(给他们一个分数)。比如说,在MongoDB中,我会创建一个单独的集合,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
{
    id: DocumentID
    from: String // id of the user who voted
    for: String // id of the user that received a vote
    rate: Number
}

在这里,我只是将这些字段(from和for)指定为字符串,然后通过应用程序逻辑将它们与用户集合链接起来。

当然,在GraphQL Prisma,情况会有所不同。但我还是有点搞不懂这种关系是如何建立起来的。以及下面到底发生了什么。

如何使用Prisma GraphQL创建这样的模式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-31 14:46:07

当同一类型有多个关系字段时,需要使用@relation指令使其明确无误。

代码语言:javascript
代码运行次数:0
运行
复制
type Vote {
  id: ID! @unique
  votingUser: User! @relation(name: "VoteAuthor")
  votedUser: User! @relation(name: "VoteReceiver")
  rate: Float!
}

type User {
  id: ID! @unique
  receivedVotes: [Vote!]! @relation(name: "VoteReceiver")
  givenVotes: [Vote!]! @relation(name: "VoteAuthor")
  name: String!
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49536857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档