Middle
38
questionbank

Как реализуется связь многие-к-многим (m2m) на уровне базы данных?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

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

Например, для связи "Книги" и "Авторы":

Таблица Books:

  • book_id (Первичный ключ)
  • title

Таблица Authors:

  • author_id (Первичный ключ)
  • name

Таблица Book_Authors (Промежуточная):

  • book_author_id (Первичный ключ - опционально, можно использовать составной ключ)
  • book_id (Внешний ключ, ссылающийся на Books.book_id)
  • author_id (Внешний ключ, ссылающийся на Authors.author_id)
sql

Запросы для получения данных:

Чтобы найти всех авторов для определенной книги:

sql

Чтобы найти все книги определенного автора:

sql