|
|
|
Вопрос по архитектуре БД для сервиса тренировок
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Я хотел бы задать вопрос людям, имеющим опыт в проектировании БД. Необходимо создать сервис, позволяющий пользователю составлять свою программу тренировок на некоторый промежуток времени, а также сохранять историю выполнения упражнений в соответствии с данной программой тренировки. Программа тренировок состоит из дней тренировки (как правило это от 3х до 6ти дней, которые циклически повторяются на заданном отрезке времени). День тренировки состоит из набора выполняемых упражнений. Каждое упражнение содержит набор сетов, в каждом из которых учитывается количество повторов сете, вес отягощения и прочие характеристики. Основная проблема заключается в том, что один пользователь, создавая свою программу, может скопировать ее у другого пользователя, внеся в нее некоторые изменения В связи с этим было принято решение реализовывать связь тренировочной программы и тренировочного дня по схеме "много-ко-многим", чтобы, в случае, когда пользователь меняет только один день, не трогая, например, остальные, добавить в БД только измененный день, а для не измененных просто добавить новую связь. Если данное решение является рациональным, то его можно применить и к другим таблицам, например для связи таблиц упражнений и сетов и тд. Основной вопрос - насколько данный подход допустим? Используется MS SQL 2008 . Ниже общее описание таблиц и скриншот БД. Буду рад каждому совету. Заранее спасибо. Общее описание таблиц: - UserProfile - таблица профилей пользователей; - Exercises - таблица упражнений, доступных на сервисе. Если нужного упражнения нет, то пользователь может добавить свое упражнение; - TrainingPrograms - таблица программы тренировок. Содержит в себе поля описания тренировки, количество дней в одном цикле и тип тренировки (сжигание жира итп.); - TrainingDays - таблица тренировочных дней. Содержит в себе описание дня; - TrainingProgramToTrainingDays - сводная таблица связи тренировочных программ и тренировочных дней для реализации "много-ко-многим". Помимо ключей содержит в себе порядковый индекс дня в программе тренировок; - TrainingExercises - таблица упражнений, выполняемых в тренировочный день; - ExerciseSet - таблица сетов в упражнении. Содержит в себе основные параметры сета - количество повторов, вес отягощения, время отдыха после сета итп.; - TrainingHistories - таблица историй выполнения пользователями каких либо упражнений. Содержит в себе ссылку на программу тренировок, день тренировок и сет для возможности сопоставления фактического выполнения упражнения с запланированным; - UserTrainingPrograms - таблица выполняемых пользователями тренировочных программ. Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2013, 14:02 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=42&tid=1541401]: |
0ms |
get settings: |
5ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 320ms |

| 0 / 0 |
