Проектирование баз данных

Что это такое

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

Почему это важно

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

Что в этом треке

  1. Ключи и связи (05-backend-data/14-database-design/01-keys-and-relations) — что идентифицирует строку и как выражаются связи между ними.
  2. Проектирование под выполняемые запросы (05-backend-data/14-database-design/02-designing-for-the-queries-you-run) — как форма схемы и её индексы выводятся из шаблонов доступа.

Предварительные требования

Что читать дальше