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

💻 Примеры: Связи и ER-диаграммы

⚡ Кратко

Примеры связей в northwind и SQL для создания связанных таблиц.

Пример 1. Связь один ко многим

Один клиент может сделать много заказов.

CREATE TABLE customers (
  id INT PRIMARY KEY AUTO_INCREMENT,
  company_name VARCHAR(255) NOT NULL
);

CREATE TABLE orders (
  id INT PRIMARY KEY AUTO_INCREMENT,
  customer_id INT NOT NULL,
  order_date DATE,
  FOREIGN KEY (customer_id) REFERENCES customers(id)
);

Пример 2. Связь многие ко многим

Один заказ может содержать много товаров; один товар может быть в нескольких заказах. Реализуется через промежуточную таблицу.

CREATE TABLE products (
  id INT PRIMARY KEY AUTO_INCREMENT,
  product_name VARCHAR(255) NOT NULL
);

CREATE TABLE order_details (
  order_id INT NOT NULL,
  product_id INT NOT NULL,
  quantity INT NOT NULL,
  PRIMARY KEY (order_id, product_id),
  FOREIGN KEY (order_id) REFERENCES orders(id),
  FOREIGN KEY (product_id) REFERENCES products(id)
);

Пример 3. Связь один к одному

Каждому сотруднику соответствует одна запись с деталями.

CREATE TABLE employees (
  id INT PRIMARY KEY AUTO_INCREMENT,
  first_name VARCHAR(100) NOT NULL
);

CREATE TABLE employee_details (
  employee_id INT PRIMARY KEY,
  passport VARCHAR(50) UNIQUE,
  FOREIGN KEY (employee_id) REFERENCES employees(id)
);

Пример 4. Описание связей northwind

  • customers 1:N orders — один клиент, много заказов.
  • orders M:N products через order_details.
  • orders 1:N order_details — один заказ, много строк.
  • products 1:N order_details — один товар в разных заказах.