Skip to main content

Розкажіть про зв'язок 1:many (1 до багатьох)

Зв'язок «один до багатьох» (1:N) - це найпоширеніший тип зв'язку між таблицями. Він означає, що один запис у першій таблиці може бути пов'язаний з кількома записами у другій, але кожен запис у другій таблиці належить лише одному запису в першій.

Приклад

Один користувач -> багато замовлень

sql
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) ); CREATE TABLE orders ( id INT PRIMARY KEY, user_id INT, amount DECIMAL(10,2), FOREIGN KEY (user_id) REFERENCES users(id) );

Тут:

  • users.id - первинний ключ (унікальний ідентифікатор користувача),
  • orders.user_id - зовнішній ключ, що вказує, якому користувачу належить замовлення.

Як це виглядає логічно

usersorders
id = 1, name = 'Анна'id = 101, user_id = 1, amount = 500
id = 102, user_id = 1, amount = 900
id = 2, name = 'Іван'id = 103, user_id = 2, amount = 200

У Анни - два замовлення, у Івана - одне, але кожне замовлення може належати лише одному користувачу.

Приклад запиту

Щоб об'єднати дані й побачити всі замовлення з іменами клієнтів:

sql
SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id;

Результат:

nameamount
Анна500
Анна900
Іван200

Де використовується зв'язок 1:N

  • Один клієнт -> багато замовлень
  • Один викладач -> багато студентів
  • Один відділ -> багато співробітників
  • Один автор -> багато книг

Особливості

  • Головна таблиця (де «один») містить первинний ключ.
  • Підпорядкована таблиця (де «багато») містить зовнішній ключ, що вказує на «одного».
  • Якщо видалити запис з головної таблиці, всі пов'язані рядки можуть стати «осиротілими» - це регулюється налаштуваннями (ON DELETE CASCADE, SET NULL тощо).

Підсумок: Зв'язок 1:N (один до багатьох) з'єднує головну таблицю з безліччю залежних записів. Він використовується, коли один об'єкт може мати кілька підпорядкованих, і реалізується через зовнішній ключ у таблиці «багато».

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.