Je dirais que cela nécessite une relation 1:n, où il y a une table principale "d'entraînements" et une table unifiée "composants" qui contient toutes les activités d'une séance d'entraînement.
Vous auriez votre table principale workouts
:
id int
participant varchar(255)
date datetime
...... any other workout related data
Puis la table enfant 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 .....
un exemple de valeur ressemblerait à ceci :
tableau d'entraînement :
id participant date
1 Harry Miller 2010-08-21
tableau workout_components :
workout_id tabindex repeat quantity quantity_unit activity
1 1 3 45 pcs pushups
1 2 1 2 minutes rope-jumping
Avantages :
-
Non limité à des activités spécifiques
-
Facile à interroger - chaque question liée à la façon d'obtenir quelque chose à partir de ce type de structure de données a déjà reçu une réponse sur SO
-
Des activités peuvent être librement ajoutées à chaque entraînement