0Pricing
Coding Interview Prep · Урок

Чтение схемы в условиях стресса

Научитесь быстро разбирать незнакомую схему таблиц и задавать правильные уточняющие вопросы на собеседовании.

«Чтение схемы в условиях стресса» — бесплатный урок Coding Interview Prep на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Coding Interview Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Coding Interview Prep содержит 4 уроков всего.

Навык работы на собеседовании

На настоящем собеседовании Вам дают незнакомую схему и просят сразу написать по ней запрос. Этот урок предлагает спокойный и воспроизводимый способ разбирать схему в условиях ограниченного времени.

Шаг 1: составьте перечень таблиц

Шаг 1: составьте перечень таблиц. Сначала прочитайте только их названия и предположите, какую сущность представляет каждая таблица. Название, объединяющее две сущности, например order_items, обычно указывает на таблицу связей.

Шаг 2: найдите первичные ключи

Шаг 2: найдите первичные ключи, обычно названные id или <table>_id. Ключ показывает гранулярность таблицы — то есть, что означает одна строка, — поэтому соединения не будут дублировать строки.

Шаг 3: проследите внешние ключи

Шаг 3: проследите внешние ключи. Столбец вроде customer_id указывает на customers.id. Изобразите связи стрелками: это пути соединения, которые Вы будете использовать.

-- Inferred join path from the foreign keys
SELECT *
FROM order_items oi
JOIN orders o   ON o.id = oi.order_id
JOIN customers c ON c.id = o.customer_id;

Шаг 4: определите кардинальность по ключам

Шаг 4: определите кардинальность по ключам. Таблица, содержащая внешний ключ, представляет сторону «многие», а таблица, на которую он указывает, — сторону «один». Один клиент, много заказов.

Шаг 5: проверьте допустимость NULL и типы

Шаг 5: проверьте допустимость NULL и типы данных. Внешний ключ, допускающий NULL, часто указывает на необходимость LEFT JOIN. Также проверьте, действительно ли дата имеет тип DATE, а сумма является числовой.

Шаг 6: задайте правильные уточняющие вопросы

Шаг 6: задайте уточняющие вопросы. «Какой статус означает, что заказ завершён?» «Уникален ли адрес электронной почты?» Собеседующие часто намеренно создают неоднозначность, чтобы проверить, зададите ли Вы вопрос или бездумно продолжите работу.

Практический пример: схема за 60 секунд

Объединим всё вместе: быстро разберём четыре таблицы интернет-магазина, определив гранулярность каждой и внешние ключи. Меньше чем за минуту Вы будете знать все пути соединения, и любой вопрос станет решаемым.

От чтения схемы к запросу

Вас попросили найти «общую выручку по каждому клиенту»? Поскольку Вы сначала проследили ключи, запрос почти пишется сам: выручка хранится на уровне позиции заказа, а затем связывается с клиентом.

SELECT c.id, c.name, SUM(oi.qty * oi.unit_price) AS revenue
FROM customers c
JOIN orders o      ON o.customer_id = c.id
JOIN order_items oi ON oi.order_id = o.id
GROUP BY c.id, c.name
ORDER BY revenue DESC;

Распространённые ловушки

Следите за предсказуемыми ловушками: неверная гранулярность, приводящая к двойному подсчёту, внутреннее соединение, из-за которого пропадают строки, или использование адреса электронной почты как ключа. Все шесть шагов помогают защититься от этих ошибок.

Рассуждения вслух приносят баллы

Рассуждения вслух приносят баллы. Проговаривайте ход мыслей: «Похоже, это таблицы интернет-магазина; гранулярность — одна позиция заказа; я свяжу её с клиентом». Так собеседующие смогут вовремя Вас поправить.

Быстрая проверка

Примените рассуждение о кардинальности к незнакомой схеме.

Итоги

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

Часто задаваемые вопросы

Урок «Чтение схемы в условиях стресса» бесплатный?

Да — полный текст урока «Чтение схемы в условиях стресса» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Coding Interview Prep, подпишись на CoddyKit PRO. Курс Coding Interview Prep содержит 4 уроков всего.

Чему я научусь в уроке «Чтение схемы в условиях стресса»?

Научитесь быстро разбирать незнакомую схему таблиц и задавать правильные уточняющие вопросы на собеседовании. Ты практикуешь Coding Interview Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Coding Interview Prep?

Предыдущий опыт не требуется. Coding Interview Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Чтение схемы в условиях стресса»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Coding Interview Prep?

Да. Каждый урок Coding Interview Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Что такое SQL и зачем его спрашивают на собеседованиях
  2. Логический порядок выполнения запроса
  3. Первичные и внешние ключи и ограничения
  4. Чтение схемы в условиях стресса
← Назад к Coding Interview Prep