0001. Нормализованное хранение сущностей проекта (вариант B)
Актуально на: 2026-07-23
- Статус: принято
- Дата: 2026-07-23 (задокументировано задним числом)
Контекст
Данные проекта (продукты, планы сбыта/производства, персонал, финансы) нужно хранить так, чтобы по ним можно было считать агрегаты (SUM/AVG и др.) и адресно доставать значения для генерации документов. Рассматривались варианты хранения в JSON-полях против нормализованных таблиц.
Решение
Выбран вариант B — нормализованные таблицы Prisma для основной массы вводимых данных. Часть UI-состояния (например, projectCalc) остаётся в persisted JSON-state проекта.
Подробности и примеры запросов — ../engineering/data-model.md.
Последствия
- ➕ Возможны агрегатные запросы и адресная выборка значений (нужно для подстановки в Word/PowerPoint — см. ../domain/data-placeholders-draft.md).
- ➕ Явная схема, миграции под контролем.
- ➖ Больше таблиц и связей; изменение структуры данных дороже, чем правка JSON.
- ⚠️ Миграции применяет вручную владелец окружения — в CI выполняется только
prisma generate.