powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение исторических данных
8 сообщений из 8, страница 1 из 1
Хранение исторических данных
    #32578486
SOMNAMBULA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужен совет по следующей теме:
Есть данные о некоторых проектах (проект – это комплекс работ или услуг, имеющий свою стоимость и выполняющийся в ограниченный период времени). По каждому проекту периодически выставляются счета, за время работы проекта может быть множество счетов на оплату. Стоимость проекта может изменяться во время его жизни путём дополнительных соглашений. Максимальная продолжительность проекта – один год. В среднем по каждому проекту выставляются счета с периодичностью в один месяц.
Система хранит информацию обо всех проектах и обо всех счетах, выставленных по проектам, а так же о всех дополнительных соглашениях по проектам. Необходимо организовать историю хранения всех проектов (завершённых проектов). Т.е. к системе возможны запросы на получение сведений о завершённых проектах и о выставленных счетах (ретроспективные отчёты).
Вижу два варианта организации истории:
1.Каждому проекту присваивается некий статус (завершён, не завершён) и принадлежность проекта истории определяется по этому статусу: активные проекты имеют незавершённый статус, проекты исторические соответственно завершены. Все данные по проектам (завершённым и активным) хранятся в одной таблице
2.Активные проекты и история проектов хранятся в разных таблицах, при завершении проекта информации о нём переносится в таблицу историй проектов. Тут ещё вопрос, как быть со счетами – так же в отдельную историческую таблицу переносить, или хранить в той же, что и счета по активным проектам?

Пока я думаю, что лучше второй вариант. В год примерно 60 – 70 проектов, по каждому 10 – 12 счетов в год.

Посоветуйте, может, есть лучшие варианты?

Спасибо.
...
Рейтинг: 0 / 0
Хранение исторических данных
    #32578493
Matt Juntunen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO первый вариант лучше. Поле статуса вообще великая вещь :), позволяет хранить в одной таблице кучу разных данных с похожей структурой.. Плюс обеспечение ссылочной целостности при первом варианте вроде проще.. + случай когда надо вдруг проект "активировать" - опять обратно в др. таблицу тащить?
...
Рейтинг: 0 / 0
Хранение исторических данных
    #32578518
Makar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему первый проще следовательно надежнее, тем более данных не очень много.
...
Рейтинг: 0 / 0
Хранение исторических данных
    #32578527
TrunovR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По-моему тоже более удобен первый вариант: т.е. делаем таблицу проектов как временной ряд и вносим в эту таблицу все данные по проекту (Код проекта, дата изменения информации о проекте, название, статус и т.д.). При изменении информации о проекте вносим в данную таблицу новую запись - таким образом обеспечиваем сохранение любых изменений происходящих с проектом. Тоже самое делаем со счетами по проектам (в ней будет ссылка на Код проекта).
...
Рейтинг: 0 / 0
Хранение исторических данных
    #32578611
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а по одному проекту одновременно может действовать два доп соглашения?
...
Рейтинг: 0 / 0
Хранение исторических данных
    #32578616
SOMNAMBULA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TrunovRПри изменении информации о проекте вносим в данную таблицу новую запись - таким образом обеспечиваем сохранение любых изменений происходящих с проектом. Тоже самое делаем со счетами по проектам (в ней будет ссылка на Код проекта).

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

gardenman
а по одному проекту одновременно может действовать два доп соглашения?

По поводу одновременного действия допсоглашений - хороший вопрос, жалко ответа нет на него. Да, ..., думать и думать ещё надо. Спасибо за вопрос :)
Но вроде как допсоглашения важны в этом контексте только догда, когда стоимость проекта изменяют (т.к. всё это нужно для отслеживания траты средств по проектам, состав работ, в общем-то, не контролируется), тогда это очень то и не важно.

Тут по ходу ещё какая проблема получается: допустим надо показать отчёт по проценту финансирования проекта за прошлый месяц (какой процент был потрачен в прошлом месяце от всей суммы проекта). А стоимость проекта изменили в этом месяце. Т.е. надо помнить какой она была в прошлом месяце!? Получается, что нужен механизм, который бы определял стоимость проекта на конкретную дату (исходя из всех допсоглашений, введённых на эту дату, и изначальных условий).

Короче, Не слишком ли я усложнаю, по вашему мнению?
...
Рейтинг: 0 / 0
Хранение исторических данных
    #32578632
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут надо пожалуй подумать с такой точки зрения:
1) Что есть доп соглашение?
2) Иммется ли возможность показать состояние проекта на любую конкретную дату?

Т.е. хранить историю это одна позиция. А как правильно ее хранить чтоб реализовать пункт 2? и чтоб при этом не тормозило.
...
Рейтинг: 0 / 0
Хранение исторических данных
    #32579990
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на первый взгляд - ваша задача один в один совпадает с вопросом - как за 1 селект показать сальдо (приход, расход) по состоянию на любое число. Для этого надо всего лишь употребить конструкцию типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select Дата, sum(Приход), sum(Расход) 
from
(
select Дата_Прихода, Сумма_Приход,  0   from Приход
union all
select Дата_Расхода,   0 , Сумма_расход  from Расход
)
where Дата "в интервале"


Такая конструкция может усложняться, путем добавления UNION и расширения кол-ва полей для суммирования . Например, стоимость проекта хранить в списке (как проводка). Тогда, сальдо будет учитывать актуальную стоимость проекта.

Приход, расход - под этим здесь можно понимать что угодно
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение исторических данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]