Внешние ключи и схема базы данных
Содержание курса
Чтение схемы учебной базы: таблицы, ключи и все связи
Схема базы данных показывает, какие таблицы существуют, какие столбцы в них есть и куда ведут внешние ключи. Читать её удобно в четыре шага: найти все таблицы → найти в каждой первичный ключ (PK) → проследить каждый внешний ключ (FK) до его цели → определить тип связи.
Учебная база содержит четыре таблицы:
customers: customer_id (PK), name, email
orders: order_id (PK), customer_id (FK), order_date, total_amount
products: product_id (PK), title, price
order_items: item_id (PK), order_id (FK), product_id (FK), quantity
Теперь проследим каждый FK.
orders.customer_id → customers.customer_id. В orders нет UNIQUE на этом столбце, значит у одного клиента может быть много заказов. Каждый заказ с заполненным customer_id ссылается на одного клиента; обязательность связи дополнительно задаётся NOT NULL. Это один-ко-многим: customers — родительская таблица, orders — дочерняя.
order_items.order_id → orders.order_id и order_items.product_id → products.product_id. Каждая строка order_items соединяет один заказ с одним товаром. Один заказ может иметь много строк в order_items с разными product_id — значит, много товаров. Один товар может встречаться в строках order_items с разными order_id — значит, входить во много заказов. order_items и есть таблица-связка, реализующая многие-ко-многим между orders и products.
Итого в учебной базе две связи: customers → orders (один-ко-многим) и orders ↔ products через order_items (многие-ко-многим). Таблица products не имеет прямого внешнего ключа ни к одной другой таблице — она участвует в связи только через order_items.
Этот алгоритм — таблицы, PK, FK, тип — работает для любой схемы, не только учебной.

