Бих казал, че това изисква връзка 1:n, където има главна таблица за „тренировки“ и една унифицирана таблица с „компоненти“, която съдържа всички дейности на тренировка.
Ще имате основната си маса workouts
:
id int
participant varchar(255)
date datetime
...... any other workout related data
След това дъщерната таблица workout_components
:
workout_id int // Which workout this belongs to
tabindex int // Which sorting order this component has in the list
repeat int // Number of repetitions (e.g. 3 sets)
quantity int // e.g. 45 push-ups or 150 meters of cycling
quentity_unit varchar // e.g. minutes or laps
activity varchar // push-ups, cycling .....
примерна стойност би изглеждала така:
тренировъчна маса:
id participant date
1 Harry Miller 2010-08-21
workout_components таблица:
workout_id tabindex repeat quantity quantity_unit activity
1 1 3 45 pcs pushups
1 2 1 2 minutes rope-jumping
Предимства:
-
Не се ограничава до конкретни дейности
-
Лесно за запитване - всеки въпрос, свързан с това как да получите нещо от този вид структура от данни, вече е получил отговор в SO
-
Дейностите могат да се добавят свободно към всяка тренировка