Назад к вопросам
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)
);
Такой подход позволяет одному автору иметь много книг, и одной книге иметь много авторов.