powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по архитектуре БД для сервиса тренировок
1 сообщений из 1, страница 1 из 1
Вопрос по архитектуре БД для сервиса тренировок
    #38119627
Dmitry Tut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Я хотел бы задать вопрос людям, имеющим опыт в проектировании БД.
Необходимо создать сервис, позволяющий пользователю составлять свою программу тренировок на некоторый промежуток времени, а также сохранять историю выполнения упражнений в соответствии с данной программой тренировки. Программа тренировок состоит из дней тренировки (как правило это от 3х до 6ти дней, которые циклически повторяются на заданном отрезке времени). День тренировки состоит из набора выполняемых упражнений. Каждое упражнение содержит набор сетов, в каждом из которых учитывается количество повторов сете, вес отягощения и прочие характеристики.

Основная проблема заключается в том, что один пользователь, создавая свою программу, может скопировать ее у другого пользователя, внеся в нее некоторые изменения В связи с этим было принято решение реализовывать связь тренировочной программы и тренировочного дня по схеме "много-ко-многим", чтобы, в случае, когда пользователь меняет только один день, не трогая, например, остальные, добавить в БД только измененный день, а для не измененных просто добавить новую связь. Если данное решение является рациональным, то его можно применить и к другим таблицам, например для связи таблиц упражнений и сетов и тд. Основной вопрос - насколько данный подход допустим?

Используется MS SQL 2008 . Ниже общее описание таблиц и скриншот БД.
Буду рад каждому совету.
Заранее спасибо.

Общее описание таблиц:
- UserProfile - таблица профилей пользователей;
- Exercises - таблица упражнений, доступных на сервисе. Если нужного упражнения нет, то пользователь может добавить свое упражнение;
- TrainingPrograms - таблица программы тренировок. Содержит в себе поля описания тренировки, количество дней в одном цикле и тип тренировки (сжигание жира итп.);
- TrainingDays - таблица тренировочных дней. Содержит в себе описание дня;
- TrainingProgramToTrainingDays - сводная таблица связи тренировочных программ и тренировочных дней для реализации "много-ко-многим". Помимо ключей содержит в себе порядковый индекс дня в программе тренировок;
- TrainingExercises - таблица упражнений, выполняемых в тренировочный день;
- ExerciseSet - таблица сетов в упражнении. Содержит в себе основные параметры сета - количество повторов, вес отягощения, время отдыха после сета итп.;
- TrainingHistories - таблица историй выполнения пользователями каких либо упражнений. Содержит в себе ссылку на программу тренировок, день тренировок и сет для возможности сопоставления фактического выполнения упражнения с запланированным;
- UserTrainingPrograms - таблица выполняемых пользователями тренировочных программ.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по архитектуре БД для сервиса тренировок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]