Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.11.2014, 03:04
davidkoko davidkoko вне форума
Прохожий
 
Регистрация: 11.02.2011
Сообщения: 8
Репутация: 10
По умолчанию таблицы прихода-расхода вместе или отдельно, остатки и обороти

Здравствуйте! Помогите пожалуйста найти оптимальное решение.
у меня есть рабочая программа(Сервер - Intebase 2009, Среда-Delphi XE6). Сначала база была проектирована для аптеки,но постепенно возникло потребление:
1) усовершенстовать Бизнес-процесс- сделать программой для учета не только лекарств,но и других тмц и, кроме этого, оказания услуг.
2) Переходить на Firebird 2.5.3.

Новая база содержит около 60 таблиц, но основная часть, на который хочу обратить ваше внимание ,это одна, общая таблица документов(master) и несколько datails, в которых по отдельности содержатся записи приходов, расходов, списания, перемешения и услуг.
приведу эту часть диаграммы:
http://i65.fastpic.ru/big/2014/1121/...d4ac49c81e.png

у меня 2 вопроса:

1)Как лучше посчитать остатки?
а) создать дополнительные таблицы (operations,rests,storages,nomenkl) . для остатков на конкретный момент времени-сохранить в rests остатки,например, на начало месяца или квартала и потом пересчитать до "сегодня"? как написано здесь: http://www.sql.ru/forum/998443-6/osn...-v-2.(особенно IV-V вариант).
Но при несколькиы складах отдельно для них хранить остатки конца каждого месяца значит, что около при 5000 наименовании в этом таблице через год будет 5000*12*количество складов записей! А через 5-10лет?!!!
б)создать "хранимые агрегаты", как прочитал в темах на форуме sql.ru. Но "хранимые агрегаты" создаются триггером а он сработает на before(after) insert, delete, update- то есть при каждом изменении таблиц документов происходит обновление записей в агрегате и так я получу текущие остатки.

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

Последний раз редактировалось davidkoko, 25.11.2014 в 19:53.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:19.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025