Вопрос проверяет понимание моделирования данных и умение правильно описывать отношения между сущностями.
Основные типы связей — один-к-одному, один-ко-многим и многие-ко-многим. Они описывают, как строки одной таблицы связаны со строками другой. Связи реализуются через внешние ключи. От правильного выбора связи зависит структура всей базы.
Связи между таблицами описывают реальные отношения между сущностями предметной области.
Определение:
Одна запись в первой таблице соответствует одной записи во второй таблице.
Пользователь → профиль
Паспорт → владелец
users(id) -> profiles(user_id)
Используется редко
Часто применяют для разделения данных по ответственности
Определение:
Одна запись в первой таблице может быть связана с несколькими записями во второй таблице.
Пользователь → заказы
Категория → товары
users(id) -> orders(user_id)
Самый распространённый тип связи
Внешний ключ хранится в таблице “многих”
Определение:
Несколько записей из одной таблицы связаны с несколькими записями из другой таблицы.
Пользователи ↔ роли
Студенты ↔ курсы
Реализуется через промежуточную таблицу:
user_roles(user_id, role_id)
Упрощение запросов
Целостность данных
Масштабируемость схемы
Тип связи выбирается исходя из реальных отношений между сущностями. Чаще всего используется связь один-ко-многим, а многие-ко-многим всегда требует отдельной таблицы.