これには、マスターの「ワークアウト」テーブルと、ワークアウトのすべてのアクティビティを含む1つの統合された「コンポーネント」テーブルがある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ですでに回答されています
-
アクティビティは各ワークアウトに自由に追加できます