Кто занимался проектированием баз данных на твоем проекте

«Кто занимался проектированием баз данных на твоем проекте» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В моем последнем проекте проектированием БД занималась команда из backend-разработчиков совместно с архитектором. Мы использовали подход, где сначала создавали ER-диаграммы в инструментах типа MySQL Workbench, затем согласовывали с бизнес-аналитиками. Основные принципы:

  1. Нормализация до 3NF
  2. Оптимизация под частые запросы
  3. Продуманные индексы

Пример части схемы для заказов:

CREATE TABLE orders (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT NOT NULL,
    status ENUM('NEW', 'PROCESSING', 'SHIPPED') NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

Позже дорабатывали схему по мере роста нагрузки, добавляя денормализацию для отчетов.