advanced

Data model

Model entities, ownership, indexes, access paths, denormalization, retention, and consistency boundaries. Объясняйте это как practical interview step, not a memorized checklist.

Моделирование данных в system design связывает сущности с путями доступа: что запрашиваете, как часто и с какой latency. SQL или NoSQL — по связям, транзакциям и паттернам запросов, а не по моде.

Определите первичные ключи, индексы для горячих запросов, денормализацию для read-heavy лент и retention по таблицам. При разделении сервисов зафиксируйте владение данными — избегайте общей mutable БД без плана.

На интервью: эскиз двух–трёх таблиц или типов документов, обоснование индексов и ожидания consistency по сущностям.

Типовые ошибки: нормализованная схема с десятью join на главной странице; нет плана для high-cardinality индексов; GSI без учёта стоимости.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Перечислите core-сущности и связи.
  • Сопоставьте сущности с read/write path.
  • Выберите индексы для горячих запросов.
  • Укажите consistency и retention по хранилищам.