✅ Решения: Связи и ER-диаграммы
⚡ Кратко
Примеры связей в northwind и схема библиотеки.
Решение 1. Типы связей в northwind
- Один к одному:
employees↔employee_privileges(один сотрудник — одна привилегия). - Один ко многим:
customers→orders(один клиент — много заказов). - Многие ко многим:
orders↔productsчерезorder_details.
Решение 2. Первичные ключи
| Таблица | Первичный ключ |
|---|---|
| customers | id |
| orders | id |
| products | id |
| order_details | order_id + product_id (составной) |
Решение 3. Внешние ключи
| Таблица | Внешний ключ | Ссылается на |
|---|---|---|
| orders | customer_id | customers(id) |
| order_details | order_id | orders(id) |
| order_details | product_id | products(id) |
Решение 4. ER-диаграмма northwind
Схема связей:
customers(1) ───< (N)ordersorders(1) ───< (N)order_detailsproducts(1) ───< (N)order_details
Связь orders ↔ products через order_details фактически M:N.
Решение 5. Схема библиотеки
CREATE TABLE books (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
author VARCHAR(255),
year_published INT
);
CREATE TABLE readers (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE
);
CREATE TABLE loans (
id INT PRIMARY KEY AUTO_INCREMENT,
book_id INT NOT NULL,
reader_id INT NOT NULL,
loan_date DATE NOT NULL,
return_date DATE,
FOREIGN KEY (book_id) REFERENCES books(id),
FOREIGN KEY (reader_id) REFERENCES readers(id)
);
Связи: books 1:N loans, readers 1:N loans. Через loans реализуется M:N между книгами и читателями.