В моем примере я пытаюсь связать программу тренировок с упражнениями. Я ожидаю, что это будет работать следующим образом:
- Пользователи будут иметь профиль (Профиль) для хранения своей информации.
- Каждый профиль может быть привязан к нескольким программам тренировок (Routine).
- Эти процедуры могут быть привязаны ко многим упражнениям (Exercision).
- Упражнения хранятся в отдельной таблице и хранят информацию об упражнении. Я стараюсь не создавать новое упражнение для каждого упражнения, поэтому, насколько я понимаю, лучше всего использовать стол для бриджа. Упражнения не смогут обновляться пользователем, но я включил функцию их обновления, так как это может потребоваться администратору.
- Существует связующая таблица (RoutineExercision), которая связывает упражнения с упражнениями, и пользователь может определить количество подходов и повторений, которые он хочет выполнить для каждого упражнения.
Есть ли схема То, что я показываю ниже, имеет смысл?
type Query {
findAllProfiles: [Profile]!
findProfileById(id: ID): Profile
# Similar Read operations for Routine/RoutineExercise/Exercise
}
type Mutation {
createProfile(profileInput: ProfileInput!): Profile!
updateProfile(id: ID!, profileInput: ProfileInput!): Profile!
deleteProfile(id: ID!): Boolean!
# Similar C/U/D operations for Routine/RoutineExercise/Exercise
}
type Profile {
id: ID!
name: String!
email: String!
routines: [Routine]
}
type ProfileInput {
name: String!
email: String!
routines: [Routine]
# Similar Input types will be created for Routine/RoutineExercise/Exercise
}
type Routine {
id: ID!
name: String!
routineExercises: [RoutineExercise]
owner: Profile!
}
type RoutineExercise {
id: ID!
sets: Int
reps: Int
exercise: Exercise!
routine: Routine!
}
type Exercise {
id: ID!
exercise_name: String!
target_muscle_group: String
routineExercise: [RoutineExercise]
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... for-use-in
Мобильная версия