Sobes.tech
Назад к вопросам
Senior
6

Как в реляционной базе данных сделать связь многие ко многим (например, авторы и книги)?

Компании, где спрашивали
ИП Ганус Александр Андреевич

Ответ от нейросети

sobes.tech AI

Связь многие ко многим в реляционной базе данных реализуется через промежуточную таблицу (join table), которая содержит внешние ключи на обе связанные таблицы.

Например, есть таблицы authors и books. Чтобы связать авторов и книги, создаём таблицу author_book с двумя столбцами: author_id и book_id. Каждая запись в этой таблице означает, что конкретный автор написал конкретную книгу.

Пример структуры:

CREATE TABLE authors (
  id INT PRIMARY KEY,
  name VARCHAR(100)
);

CREATE TABLE books (
  id INT PRIMARY KEY,
  title VARCHAR(200)
);

CREATE TABLE author_book (
  author_id INT,
  book_id INT,
  PRIMARY KEY (author_id, book_id),
  FOREIGN KEY (author_id) REFERENCES authors(id),
  FOREIGN KEY (book_id) REFERENCES books(id)
);

Такой подход позволяет одному автору иметь много книг, и одной книге иметь много авторов.