我刚开始用Prisma。以前主要是使用firebase和mongodb来定义我的模式。
我试图定义以下模式:
Vote {
id: ID!
from: User! # The user who voted
for: User! # The user that received a vote
rate: Float!
}
基本上,我想要实现的是让用户投票给其他用户(给他们一个分数)。比如说,在MongoDB中,我会创建一个单独的集合,如下所示:
{
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创建这样的模式?
发布于 2018-03-31 06:46:07
当同一类型有多个关系字段时,需要使用@relation
指令使其明确无误。
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!
}
https://stackoverflow.com/questions/49536857
复制