sql >> Database teknologi >  >> RDS >> Mysql

Databaseproblem, hvordan man gemmer skiftende datastruktur

Jeg vil sige, at dette kræver et 1:n-forhold, hvor der er en hovedtabel for "træning" og en samlet "komponenttabel", der indeholder alle aktiviteterne i en træning.

Du vil have din hovedtabel workouts :

id   int
participant varchar(255)
date        datetime
...... any other workout related data

Derefter den underordnede tabel 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 .....

en eksempelværdi ville se sådan ud:

træningstabel:

id          participant      date
1           Harry Miller     2010-08-21

workout_components tabel:

workout_id  tabindex     repeat      quantity     quantity_unit  activity
1           1            3           45           pcs            pushups
1           2            1           2            minutes        rope-jumping

Fordele:

  • Ikke begrænset til specifikke aktiviteter

  • Let at forespørge - hvert spørgsmål relateret til, hvordan man får noget ud af denne form for datastruktur er allerede blevet besvaret på SO

  • Aktiviteter kan frit tilføjes til hver træning



  1. Hvornår vil du bruge en funktion med tabelværdi?

  2. MySQL bedste N-resultater med Join-tabeller

  3. Java combobox swing

  4. Hvordan får man mysql tilfældigt heltalsområde?