TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.3K subscribers
Post #1864 525
🤔 Что такое ссылочная целостность связей?

Ссылочная целостность (Referential Integrity) – это правило, которое гарантирует, что связи между таблицами остаются корректными.

🚩Пример в базе данных

Допустим, у нас есть 2 таблицы:
users (Пользователи)
orders (Заказы)

Связь: каждый заказ (orders) должен ссылаться на существующего пользователя (users) через user_id.
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100)
);

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


🚩Как работает ссылочная целостность?

Запрещает вставку "несуществующих" ссылок
INSERT INTO orders (id, user_id, amount) VALUES (1, 999, 100.00);
-- ❌ Ошибка! Пользователя с id = 999 нет в users


Запрещает удаление родительской записи, если есть зависимые
DELETE FROM users WHERE id = 1;
-- ❌ Ошибка! Есть заказы, которые ссылаются на пользователя id = 1


Автоматическое удаление связанных данных (ON DELETE CASCADE)
DELETE FROM users WHERE id = 1;
-- ✅ Все заказы с user_id = 1 тоже удалятся


🚩Способы управления ссылочной целостностью

ON DELETE CASCADE → при удалении пользователя удаляются все его заказы.
ON DELETE SET NULL → при удалении пользователя поле user_id в заказах становится NULL.
ON DELETE RESTRICT → запрещает удалять пользователя, если у него есть заказы.
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL;


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_php_ru
  1. Oct 17, 2026🤔 Зачем использовать Rest , если есть Soup? SOAP (Simple Object Access Protocol) и REST (…
  2. Oct 16, 2026🤔 Какие типы БД бывают? Базы данных делятся на реляционные (SQL) и нереляционные (NoSQL).…
  3. Oct 16, 2026🤔 Что такое агрегат? Агрегат – это термин, часто используемый в области баз данных и прог…
  4. Oct 15, 2026🤔 Что такое замыкание? Это функция, которая «захватывает» переменные из внешней области в…
  5. Oct 15, 2026🤔 Что есть кроме микросервисной и монолитной архитектуры? Помимо монолитной и микросервис…
  6. Oct 14, 2026🤔 В чём суть абстрактного класса? Абстрактный класс — это класс, который нельзя инстанцир…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →