Для отношений «многие ко многим» у вас должна быть третья таблица, в которой хранятся отношения и которая называется соединительной таблицей .Например, в вашем случае каждая строка будет иметь exerciseID
и workoutID
, что означает, что две (упражнение и тренировка) связаны.
Так, например, в этой таблице может быть много строк сexerciseID = 1
(разные workoutID
с) и много строк с workoutID = 5
(разные exerciseID
с), следовательно, многие ко многим.
Дополнительные пояснения
КаждаяСтрока таблицы соединений имеет три поля:
- Свой собственный идентификатор (поскольку в базе данных рекомендуется, чтобы у каждой таблицы был свой идентификатор, независимо от того, какой)
- ExerciseID
- WorkoutID
Например, скажем, у нас есть распределительная таблица, подобная этой:
ID ExerciseID WorkoutID
-------------------------------
1000 12 5
1001 12 6
1002 12 9
1003 12 12
1004 12 27
1005 13 2
1006 13 6
1007 13 9
, что означает:
- номер упражнения
12
имеет тренировки [5, 6, 9, 12, 27]
- номер упражнения
13
имеет тренировки [2, 6, 9]
Но как создать эту таблицу:
Либо у вас есть пользовательский интерфейс, который позволяет вашим пользователям добавлять, редактировать и удалять упражнения и тренировки, либо вы делаете это самостоятельно.В любом случае, любой, кто определяет упражнение или тренировку, должен знать, как они связаны!Таким образом, они также могут определить это отношение как строку в соединительной таблице