💻 Примеры: Связи и 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
customers1:Norders— один клиент, много заказов.ordersM:Nproductsчерезorder_details.orders1:Norder_details— один заказ, много строк.products1:Norder_details— один товар в разных заказах.