Что такое ссылочная целостность связи в базе данных

«Что такое ссылочная целостность связи в базе данных» — вопрос из категории Базы данных, который задают на 28% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Ссылочная целостность (referential integrity) — это механизм в реляционных БД, гарантирующий корректность связей между таблицами. Он обеспечивает, что внешние ключи (foreign keys) всегда ссылаются на существующие записи в связанных таблицах.

Основные правила:

  1. Запрещает удаление записи, на которую ссылаются (или каскадное удаление)
  2. Запрещает вставку записи с несуществующим внешним ключом
  3. Может автоматически обновлять ссылки при изменении первичного ключа

Пример с ON DELETE CASCADE:

CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);

При удалении пользователя из users все его заказы в orders автоматически удалятся.