Mysql
 sql >> база данни >  >> RDS >> Mysql

Проблем с базата данни, как да съхранявате променяща се структура на данни

Бих казал, че това изисква връзка 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Node MySQL изпълнява множество заявки възможно най-бързо

  2. MYSQL заявката се изпълнява много бавно

  3. java jdbc mysql конектор:как да разрешите прекъсване на връзката след дълго време на бездействие

  4. Как да проверите размера на базата данни MySQL в Linux

  5. Фатална грешка при извикване на MySQL съхранена функция от PHP с помощта на MySQLi