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 по хранилищам.