GraphQl 单向关系
Posted
技术标签:
【中文标题】GraphQl 单向关系【英文标题】:GraphQl One-Direction Relationship 【发布时间】:2021-11-06 18:14:26 【问题描述】:我希望我的用户有一个锻炼列表(它们可以是活动的、已完成的、待办事项)。我是否必须建立从锻炼到用户的链接才能使这项工作?难道没有别的办法了吗?有一个返回链接似乎很奇怪,因为我有一个循环 user>workout>user>workout...
我不确定这是否应该在 graphql 中完成,我是 graphql 的新手。我目前有以下架构:
type User
email: String @unique
fullName: String
birthDate: Date
weight: Int
height: Int
country: String
trainingFrequency: Int
trainingGoal: String
isOnboarded: Boolean
workouts: [Workout]
type Workout
name: String!
state: State!
enum State
ACTIVE
TODO
COMPLETED
type Query
allUsers: [User!]!
findUserByEmail(email: String!): User
【问题讨论】:
两种Object类型的单向两向关系,都可以。见***.com/questions/53863934/… 【参考方案1】:对于 Fauna,当您使用 @relation
指令时,始终会为您创建双向关系。在一对多关系中,引用将存储在所有多方文档中(在您的情况下为Workout
类型)。通过为您自动生成的索引,可以将图形从一侧(User
类型)遍历到多侧。
是的,您可以(几乎)无限循环地查询,但实际上并没有什么好处。
确保包含@relation
指令。
type User
email: String @unique
fullName: String
birthDate: Date
weight: Int
height: Int
country: String
trainingFrequency: Int
trainingGoal: String
isOnboarded: Boolean
workouts: [Workout] @relation
type Workout
name: String!
state: State!
owner: User! @relation
【讨论】:
以上是关于GraphQl 单向关系的主要内容,如果未能解决你的问题,请参考以下文章