@MilCo

Какие лучше сделать отношения между таблицами?

Уходил в академический отпуск, сейчас вернулся и надо оформить до конца диплом. Но возникли пару вопросов. Один из модулей проекта каталог упражнений. Есть упражнение, группа мышц(ноги, руки, грудь и т.д), сами мышцы по отдельности.
Отношение:
1) Группы мышц к отдельным мышцам: один ко многим.
2) Группы мышц к упражнению: один ко многим.
3) Отдельных мышц к упражнению: многие ко многим. Но должны быть 2 связи многие ко многим, первая в отношение целевых мышц, а вторая к мышцам, которые получают косвенно нагрузку.
Это нормально что будет 2 связи многие ко многим, но для разных целей?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
@alexalexes
Упражнение
(# Id -- идент. упражнения
* Grp_Id -- идент. группы мышц, внеш ключ
* Name -- Название,
* Descr -- Описание
)

Мышцы
(# Id -- идент. мышцы,
* Grp_Id -- идент. группы мышц, внеш. ключ,
* Name -- Название
)

Группа мышц
(# Id -- идент. группы мышц,
* Name -- Название
)

Воздействие упражнения
(# Id -- идент. воздействия,
* Ex_Id -- идент. упражнения, внеш. ключ
* Мus_Id -- идент. мышцы, внеш ключ
* Power -- сила воздействия или просто целевой флаг
)

Если вы говорите про связь "много-много", то знайте, что за ней прячется еще одна табличка, реализующая ассоциативную связь между основными объектами, и по сути это две связи через таблицу. В вашем случае, это Воздействие упражнения. Если взять концепцию графа ("много-много" - это всегда граф, а точнее его ребрышки). То, упражнения и мышцы - это вершины графа, а ребра - это как раз пары [ex_id, mus_id], вес ребра - сила воздействия. В этой же табличке можно было бы хранить ребра воздействий на группы мышц [ex_id, grp_id], в этом случае mus_id будут заполнены null-значениями, но задание говорит, что нужно связать группы мышц с упражнениями.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы