Назад к вопросам
Middle
3
Какие типы связей вы знаете и как реализовать связь многие-ко-многим?
Компании, где спрашивали
EcoFinance
Ответ от нейросети
sobes.tech AI
Основные типы связей между сущностями в базах данных:
- Один-к-одному (1:1): каждой записи в первой таблице соответствует одна запись во второй.
- Один-ко-многим (1:N): одной записи в первой таблице соответствует несколько записей во второй.
- Многие-ко-многим (M:N): записи в первой таблице могут соответствовать множеству записей во второй и наоборот.
Для реализации связи многие-ко-многим обычно создаётся промежуточная таблица (join table), которая содержит внешние ключи на обе связанные таблицы. Например:
-- Таблицы пользователей и ролей
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE roles (
id INT PRIMARY KEY,
role_name VARCHAR(100)
);
-- Промежуточная таблица для связи многие-ко-многим
CREATE TABLE user_roles (
user_id INT,
role_id INT,
PRIMARY KEY (user_id, role_id),
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (role_id) REFERENCES roles(id)
);
Таким образом, один пользователь может иметь несколько ролей, и одна роль может принадлежать нескольким пользователям.