Прежде всего вам необходимо создать таблицы для каждой из сущностей и их атрибутов (обратите внимание, я добавил «id» в каждую из таблиц для отношений):
- Рутина (имя, метка времени, идентификатор)
- Упражнение - для меня это выглядит как дубликат, так что оставьте его только здесь (muscleGroup, musclePicture, name, timeStamp, id)
- Session (timeStamp, id)
- Набор (повторений, отметка времени, единица измерения, вес, идентификатор)
Теперь, когда у вас есть таблицы, которые описывают каждую из сущностей, вам нужно создать таблицы, которые будут описывать отношения между этими сущностями - как и раньше, имена таблиц в заглавных буквах, а их поля в скобках:
- RoutineExercises (рутина_ид, упражнение_ид)
- SessionExercises (session_id, упражнение_id)
- ExerciseSets (упражнение_id, set_id)
Вот и все! Теперь, если вам нужно добавить упражнение в рутину, вы просто:
- Добавить запись в таблицу упражнений
- Установите связь, добавив кортеж в таблицу RoutineExercises, где рутинный_идентификатор - это идентификатор вашей рутины, а тренировочный_идентификатор - это идентификатор вновь созданной записи в таблице упражнений.
Это будет справедливо для всех остальных отношений.
ПРИМЕЧАНИЕ: Ваша базовая модель данных имеет отношения «один ко многим» и «многие ко многим». Если вы хотите принудительно установить, что отношение является «один ко многим» (например, в упражнении может быть только 1 подпрограмма), вам нужно будет указать «exerc_id» в качестве индекса для таблицы RoutineExercises. Если вы хотите, чтобы разрешались отношения «многие ко многим» (т. Е. Каждому упражнению разрешено иметь несколько подпрограмм), то в качестве индекса укажите кортеж (рутинный_идентификатор, упражнение_ид.)