Что такое отношение «один ко многим» (1:N) в базах данных?

«Что такое отношение «один ко многим» (1:N) в базах данных?» — вопрос из категории Базы данных, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Отношение "один ко многим" (1:N) — это фундаментальная связь в реляционных базах данных, где одной записи в родительской таблице (например, Author) может соответствовать множество записей в дочерней таблице (например, Book).

Реализация на уровне схемы БД: Внешний ключ (Foreign Key) создаётся в таблице "многих" и ссылается на первичный ключ (Primary Key) таблицы "одного".

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

CREATE TABLE books (
    id INT PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(255),
    author_id INT,
    FOREIGN KEY (author_id) REFERENCES authors(id) ON DELETE CASCADE
);

Ключевые моменты:

  • Целостность данных: Ограничение FOREIGN KEY гарантирует, что author_id в books будет ссылаться на существующую запись в authors.
  • Каскадные операции: ON DELETE CASCADE автоматически удалит все книги автора при его удалении.
  • Обратная связь: Из записи в books всегда можно найти соответствующего автора через author_id. Это отношение является основой для более сложных связей и нормализации данных.