Jag skulle säga att detta kräver en 1:n-relation, där det finns en huvudtabell för "träningspass" och en enhetlig "komponenttabell" som innehåller alla aktiviteter i ett träningspass.
Du skulle ha ditt huvudtabell workouts
:
id int
participant varchar(255)
date datetime
...... any other workout related data
Sedan den underordnade tabellen 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 .....
ett exempelvärde skulle se ut så här:
träningstabell:
id participant date
1 Harry Miller 2010-08-21
workout_components-tabell:
workout_id tabindex repeat quantity quantity_unit activity
1 1 3 45 pcs pushups
1 2 1 2 minutes rope-jumping
Fördelar:
-
Inte begränsat till specifika aktiviteter
-
Lätt att fråga - alla frågor som rör hur man får ut något från den här typen av datastruktur har redan besvarats på SO
-
Aktiviteter kan läggas till fritt till varje träningspass