Вопрос №55468 от пользователя Daniyar Zhanakhmetov в уроке «Онтология», курс «Основы реляционных баз данных»

Daniyar Zhanakhmetov

Картинка из теории "https://ibb.co/K6tKcBD"

proffesions и courses имеют связь m2m, связующая таблица proffesions _items. Не могу понять что именно представляет собой proffesion_items.

Я понимаю, что одна профессия может содержать много курсов, но и курс может содержаться как минимум в 2 профессиях. Список профессий в одной таблице, список курсов в другой. Но что из себя представляет сущность proffesion_items или это не сущность, а просто связующая таблица?

proffesions

id |            name            | language
--------------------------------------
1  | Фронтенд-прогр-т | JS
2  | Бэк-енд прогр-т     | Python

courses

id |            name       
------------------
1  | Функции
2  | Массивы
3  | Объекты
4  | БД
5  | СУБД
6  | Онтология

proffesions_items

id |  course_id | proffesion_id
-------------------------------
1  | 1                |     1
2  | 2                |     1
3  | 2                |     2
4  | 3                |     1
5  | 3                |     2
6  | 4                |     2
7  | 5                |     1
8  | 6                |     1
9  | 6                |     2
3 0

Maksim Litvinov

Да, вы правы. Между профессией и курсом связь многие-ко-многим. Одна профессия содержит много курсов, в то же время и курс может содержаться в нескольких профессиях. Чтобы выразить эту связь, как раз и вводится связующая таблица proffesions _items. Посмотрите на 2 и 3 строку сверху. Курс с id равным 2 (это курс Массивы) содержится в двух профессиях с id 1 и 2. И в то же время в профессии 1 содержатся курсы 1, 2, 3, 5, 6. Вот она и связь многие-ко-многим.

0

Daniyar Zhanakhmetov

Максим Литвинов, т.е. это просто связующая таблица, не представляющая собой сущность?

Просто в теории есть связующая таблица courses_members и она как раз являются сущностью, потому что означает участников курса. А тут я так понимаю просто она выступает в качестве связующей таблицы?

0

Maksim Litvinov

Да, таблица course_members может перерасти в самостоятельную сущность, так как в ней может появиться дополнительная информация:

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

Таблица proffesions _items же просто выражает связь между таблицами профессий и курсов.

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев