Ich würde sagen, dies erfordert eine 1:n-Beziehung, in der es eine Master-"Trainings"-Tabelle und eine einheitliche "Komponenten"-Tabelle gibt, die alle Aktivitäten eines Trainings enthält.
Sie hätten Ihre workouts
am Haupttisch :
id int
participant varchar(255)
date datetime
...... any other workout related data
Dann die untergeordnete Tabelle 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 .....
ein Beispielwert würde so aussehen:
Trainingstabelle:
id participant date
1 Harry Miller 2010-08-21
Tabelle workout_components:
workout_id tabindex repeat quantity quantity_unit activity
1 1 3 45 pcs pushups
1 2 1 2 minutes rope-jumping
Vorteile:
-
Nicht auf bestimmte Aktivitäten beschränkt
-
Einfach abzufragen - jede Frage, wie man etwas aus dieser Art von Datenstruktur bekommt, wurde bereits auf SO
beantwortet -
Aktivitäten können jedem Training frei hinzugefügt werden