Sobes.tech
Назад к вопросам
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)
);

Таким образом, один пользователь может иметь несколько ролей, и одна роль может принадлежать нескольким пользователям.