Re: Задачка: модель данных для склада с версионностью
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.06.10 06:39
Оценка: 1 (1) +2
Здравствуйте, ronaldo9, Вы писали:

R>6. Прошедшие операции следует хранить не более 1 года.

Странное требование на самом деле. Может стоит не показывать операции более одного года?

R>1 вариант. Не хранить, сколько товара было на складе в каждый конкретный момент. Хранить только операции

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

R>...Кроме того, чтобы получить состояние складов на сегодня, придется выгружать всю таблицу операций в память, чтобы провести агрегирование — теряем в производительности.

materialized\indexed views

R>А какое Ваше мнение, господа?


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

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