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

Problema con il database, come memorizzare la modifica della struttura dei dati

Direi che questo richiede una relazione 1:n, dove c'è una tabella "allenamenti" principale e una tabella "componenti" unificata che contiene tutte le attività di un allenamento.

Avresti il ​​tuo tavolo principale workouts :

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

Quindi la tabella figlio 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 .....

un valore di esempio sarebbe simile a questo:

tabella di allenamento:

id          participant      date
1           Harry Miller     2010-08-21

tabella workout_components:

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

Vantaggi:

  • Non limitato ad attività specifiche

  • Facile da interrogare:ogni domanda relativa a come ottenere qualcosa da questo tipo di struttura dati ha già avuto risposta su SO

  • Le attività possono essere aggiunte liberamente a ogni allenamento