@drboboev

Как реализовать отчёт по продажам с меняющейся иерархией?

Добрый день.

Задача следующая:

Необходимо разработать систему отслеживания продаж по территориям. Ежедневно сотрудники их регионов заполняют данные, а ответственный сотрудник эти данные собирает и предоставляет отчёт в виде иерархии руководству.

На данный момент, всё реализовано в виде Nested set и всё довольно успешно функционирует. Но возникла проблема с получением данных за прошлые периоды. Потому что структура часто меняется, а отчёт собирает данные, опираясь на текущую структуру.

Думал сделать версии структуры, то есть если структура изменилась, то старая структура сохраняется с датой, по которую она была актуальна. Т.е. при загрузке старых данных, будет загружаться старая структура. Но мне кажется этот вариант не подходит, потому что в базе будет каша, каждый раз при изменении структуры будет создаваться 100500 полей для отражения новой структуры.

Может кому приходилось делать что то подобное, буду рад любым советам.

Спасибо.
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 2
@grinat
Взять монго
Ответ написан
zoonman
@zoonman
⋆⋆⋆⋆⋆
Как специалист по Монге скажу - Монга тут ненужна.

Отчет, как правило, вещь относительно статичная. В нормальном виде генерируется ввиде файла, обычно Excel и т.д.
Если ваш отчет генерируется на лету, то нужно менять подход к написанию кода и предоставлять обратную совместимость. Реализуется это за счет правильного выбора структур данных и миграций (трансформации старых данных в новые, с поддержкой совместимости).

Есть альтернативный вариант с созданием снапшотов, т.е. просто делается копия сгенерированной HTML страницы со всеми встроенными данными и скриптами. Подход не очень красивый, но реализуется быстрее остальных.

Кстати, ничего не мешает вам делать снапшоты для Nested Sets и хранить их в отдельной таблице в виде леса деревьев.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы