Как определить связь таблица-мост/многие-ко-многим в моей схеме для использования в Spring JPA BE?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как определить связь таблица-мост/многие-ко-многим в моей схеме для использования в Spring JPA BE?

Сообщение Anonymous »

Я работаю над личным проектом, чтобы лучше понять BE/архитектуру/как все взаимосвязано, но мне трудно найти примеры, показывающие полную картину. Сейчас меня особенно смущает то, как определяется схема для связи «многие-ко-многим» с мостовой таблицей. Это используется в проекте Java/Spring JPA. Заранее извиняюсь, если это плохое представление - я новичок в полнофункциональной разработке. Мы будем очень признательны за любые отзывы о потенциальных улучшениях!
В моем примере я пытаюсь связать программу тренировок с упражнениями. Я ожидаю, что это будет работать следующим образом:
  • Пользователи будут иметь профиль (Профиль) для хранения своей информации.
  • Каждый профиль может быть привязан к нескольким программам тренировок (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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»