← К оглавлению занятия

✅ Решения: Связи и ER-диаграммы

⚡ Кратко

Примеры связей в northwind и схема библиотеки.

Решение 1. Типы связей в northwind

  • Один к одному: employeesemployee_privileges (один сотрудник — одна привилегия).
  • Один ко многим: customersorders (один клиент — много заказов).
  • Многие ко многим: ordersproducts через order_details.

Решение 2. Первичные ключи

ТаблицаПервичный ключ
customersid
ordersid
productsid
order_detailsorder_id + product_id (составной)

Решение 3. Внешние ключи

ТаблицаВнешний ключСсылается на
orderscustomer_idcustomers(id)
order_detailsorder_idorders(id)
order_detailsproduct_idproducts(id)

Решение 4. ER-диаграмма northwind

Схема связей:

  • customers (1) ───< (N) orders
  • orders (1) ───< (N) order_details
  • products (1) ───< (N) order_details

Связь ordersproducts через 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 между книгами и читателями.