К содержимому
Claude Code с 0:полный курс
Уровень 12 · Базы данных 4 мин

Связи между таблицами простыми словами

Понимаем, зачем таблицы ссылаются друг на друга: таблица «заказы» указывает на пользователя, а не переписывает его анкету заново, — так данные не дублируются.

В этом уроке нет практического задания — просто прочитай и ответь на вопросы.

До сих пор мы смотрели на таблицы по отдельности: вот пользователи, вот заказы. Но в реальной базе таблицы редко живут поодиночке — они связаны друг с другом. Сегодня разберём, что это значит и зачем вообще нужно, без единой страшной формулы.

Почему нельзя свалить всё в одну таблицу

Представь интернет-магазин. У тебя есть клиенты и есть их заказы. Соблазнительно сделать одну большую таблицу, где в каждой строке-заказе записано всё: что купили, а заодно имя клиента, его телефон, адрес и email.

Проблема в том, что один клиент делает много заказов. И его имя, телефон, адрес придётся переписывать заново в каждой строке. Сделал человек десять заказов — десять раз продублировали его анкету. А если он сменил телефон? Придётся искать и править все десять строк, и не дай бог где-то ошибиться.

Решение — связь между таблицами

Поэтому данные разносят по разным таблицам и связывают:

  • таблица users — анкеты клиентов, каждый записан один раз;
  • таблица orders — заказы, и в каждом заказе хранится не вся анкета, а только номер клиента.
-- таблица orders
-- id | товар    | user_id
-- 1  | Книга    | 7
-- 2  | Наушники | 7

Видишь user_id? Это и есть связь. Заказ как бы говорит: «меня сделал клиент номер 7». А кто такой номер 7, лежит в таблице users. Имя клиента хранится в одном месте, а заказы лишь ссылаются на него.

Аналогия из жизни

Это как заполнять бланк заказа на почте. Ты же не переписываешь в каждой посылке полную анкету отправителя — ты указываешь номер договора или телефон, а остальное у почты уже есть. Один раз сообщил свои данные — дальше везде ссылаешься на них коротким идентификатором.

Главная польза связей — данные не дублируются. Поменял телефон клиента в его единственной анкете — и все заказы автоматически «знают» новый номер, потому что ссылаются на ту же строку.

Попробуй

Задания в терминале нет — урок про понимание. Представь свою любимую соцсеть: есть таблица пользователей и таблица постов. Как, по-твоему, пост понимает, кто его автор? Правильно — в посте хранится номер пользователя-автора. Это та же самая связь. Держи эту картинку в голове и переходи к вопросам.

Проверь себя

Отвечено 0/3
Режим:

Зачем связывать таблицы между собой?

Как обычно устроена связь таблиц «заказы» и «пользователи»?

Что хорошего даёт отсутствие дублирования данных?

Выполни задание в терминале и ответь на вопросы, чтобы завершить урок.

📝 Мои заметки

Сохраняется автоматически в этом браузере · видно на странице «Заметки».

Листай уроки клавишами · поиск по ⌘K