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

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

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

Уровень 12 · 0 / 9 уроков0%

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

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

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

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

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

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

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

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

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

Мини-проверка

Что именно хранится в строке заказа, чтобы было понятно, чей это заказ?

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

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

Совет

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

Попробуй

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

Проверь себя

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

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

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

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

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

📝 Мои заметки

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

Вопросы и ответы по уроку

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

Связи позволяют хранить данные один раз и ссылаться на них. Анкета клиента лежит в одном месте, а заказы просто указывают на неё номером.

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

Заказ ссылается на пользователя по его номеру (id). Этого достаточно, чтобы понять, чей это заказ, и не повторять имя, телефон и адрес в каждой строке.

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

Когда анкета хранится в одном месте, достаточно обновить её там — и все связанные заказы автоматически ссылаются на актуальные данные.

Что именно хранится в строке заказа, чтобы было понятно, чей это заказ?

В заказе лежит лишь номер клиента (user_id). Сама анкета хранится один раз в таблице users, а заказ просто ссылается на неё этим номером.

Почитать по теме в блоге

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