GraphQl 单向关系
GraphQl One-Direction Relationship
我希望我的用户有一个锻炼列表(它们可以是活动的、已完成的、待办事项)。我是否必须从 Workout 向用户发送 link 才能完成这项工作?没有别的办法吗? link 背部看起来很奇怪,因为我有一个循环 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
}
对于 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
}
我希望我的用户有一个锻炼列表(它们可以是活动的、已完成的、待办事项)。我是否必须从 Workout 向用户发送 link 才能完成这项工作?没有别的办法吗? link 背部看起来很奇怪,因为我有一个循环 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
}
对于 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
}