sql >> Databasteknik >  >> RDS >> Mysql

Databasproblem, hur man lagrar ändrad datastruktur

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



  1. Linux-skalskript för säkerhetskopiering av databas

  2. MySQL ger fluktuerande radantal när jag frågar schema?

  3. Hur Cot() fungerar i PostgreSQL

  4. olöst referens till objektet [INFORMATION_SCHEMA].[TABLER]