sql >> データベース >  >> RDS >> Mysql

データベースの問題、変化するデータ構造を保存する方法

    これには、マスターの「ワークアウト」テーブルと、ワークアウトのすべてのアクティビティを含む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ですでに回答されています

    • アクティビティは各ワークアウトに自由に追加できます



    1. SQL ServerでRANK()を使用する方法

    2. JPAは、複数のテーブルの列で構成されるエンティティを許可しませんか?

    3. テーブルは、「UPDATE」のターゲットとmysqlのデータの個別のソースの両方として2回指定されます

    4. MySQLで特権を差し引く方法