powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подскажите метод организации склада
25 сообщений из 25, страница 1 из 1
подскажите метод организации склада
    #37594401
ther
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
больше интересует каким образом лучше выбирать остатки на складе..
у меня 2 варианта..это обычное sum(приход-расход) по всей базе(но я не знаю на сколько это повлияет на скорость при большом количестве записей)
или создавать по закрытию месяца таблицу остатков

поделитесь опытом в организации склада плиз
ПС
база ms sql 2005/2008 (еще не знаю какая версия стоит на сервере)
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37594437
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ther,

В супермаркете тысячи товарных позиций, тысячи продаж в день. При этом остатки по тому или иному товару запрашиваются тоже тысячи раз в день и при просмотре, и в различных отчетах, и в расчетах при планировании.

При этом, при закрытии месяца производится инвентаризация. Т.е. сверка остатков по документам с реальными остатками. Т.е. ежемесячная агрегация остатков - это даже не вспомогательный документ для оптимизации запросов, а (обычно) неотьемлимая часть учета.

И диаметрально противоположный вариант. Есть склад какой-то "Рога и копыта" с сотней сделок в месяц и сотней позиций на складе. Инвентаризация делается чисто для проформы, если делается. А остатки можно считать по базе и нагрузкой назвать это тяжело.
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37594575
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант - хранить текущие остатки, остатки на начало периода, операции движения за период и резервы.
Тогда находить текущий остаток и создавать резервы можно будет одним, двумя легкими запросами. Промежуточные остатки- запросом за период - сумма остатков на начало периода и движение.
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37594609
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ther,

Во многих системах учета банально вводят таблицу текущих остатков, чтобы вообще ничего не суммировать. При большой частоте продаж - это разумно.
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37594932
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ммм...
предлагаю хранить остатки на конец каждого периода (месяца, как пример)
и текущие остатки - как например с периодом 01.01.3001
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37595186
ther
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо..так и сделаю
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37595432
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonВо многих системах учета банально вводят таблицу текущих остатков, чтобы вообще ничего не
суммировать. При большой частоте продаж - это разумно.

Но при этом приходится разруливать update conflict-ы или громоздить бесконфликтную схему.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37595523
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovEdd.DragonВо многих системах учета банально вводят таблицу текущих остатков, чтобы вообще ничего не
суммировать. При большой частоте продаж - это разумно.

Но при этом приходится разруливать update conflict-ы или громоздить бесконфликтную схему.

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

Если выберешь вариант с остатками (скорее всего, и это правильно :) ) и реализуешь алгоритмы:
- оприходуй энное количество разного товара
- запусти параллельно несколько автоматических тестовых процессов по отгрузке/поставке на склад, и несколько процессов, просто получающих остатки.

Приветствуется в каждом из процессов оприходование или отгрузка большого перечня товаров одним "пакетом" (как в реальной жизни по одной накладной кучу товара).

Тщательно проверь:
0) exception'ы.
1) что хранится в итоге в остатках, и что должно было получиться.
2) сколько времени требуется на получение остатков (min, max, avg)
3) сколько времени требуется на изменение остатков (min, max, avg)
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37595533
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойЕсли выберешь вариант с остатками (скорее всего, и это правильно :) ) и реализуешь алгоритмы:

Сорри: вышесказанное не зависит от выбранного решения - протестируй таким образом в любом случае :)
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37595983
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovEdd.DragonВо многих системах учета банально вводят таблицу текущих остатков, чтобы вообще ничего не
суммировать. При большой частоте продаж - это разумно.

Но при этом приходится разруливать update conflict-ы или громоздить бесконфликтную схему.

Тут уж что дешевле. Громоздить схему или пересчитывать постоянно.

Обычно хватало локать запись на апдейт при проведении. А зазевавшемуся менеджеру, который с утра открыл документ продажи и ввел продажу имеющегося товара, а вечером только его провел, когда товар уже ушел - сообщать о том, что он тормоз ))
Хотя может были еще ньюансы, о которых я уже давно позабыл.
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37595991
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonОбычно хватало локать запись на апдейт при проведении

Ну, это пройдёт на Оракуле с его бесконечным ожиданием конкурирующих транзакций. В
остальных случаях - "тщатильнее надо".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37596242
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovEdd.DragonВо многих системах учета банально вводят таблицу текущих остатков, чтобы вообще ничего не
суммировать. При большой частоте продаж - это разумно.

Но при этом приходится разруливать update conflict-ы или громоздить бесконфликтную схему.


ожидания на системных блокировках сводятся на нет использованием коротких системных транзакций.
программирование в стиле WEB интерфейса само по себе диктует применение коротких транзакций в рамках одного http запроса.

одна бизнес-операция должна разбиваться на несколько системных транзакций. состояние бизнес-операции хранится в БД.
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37596387
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovEdd.DragonОбычно хватало локать запись на апдейт при проведении

Ну, это пройдёт на Оракуле с его бесконечным ожиданием конкурирующих транзакций. В
остальных случаях - "тщатильнее надо".

Э-э-э, это в смысле, например, при обновлении записи ждать бесконечно долго, пока она не освободится после окончания конкурирующей транзакции? В Informix я тоже так умею:
Код: sql
1.
SET LOCK MODE TO WAIT;
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37597458
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ther,

таблицы:
накладные
остатки на каждый день
текущие остатки


каждый день в 00:00 закрываемся, копируем текущие остатки в остатки накаждый день. Все.
каждая операция изменяет только текущие остатки.
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37599505
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин
каждый день в 00:00 закрываемся, копируем текущие остатки в остатки накаждый день. Все.
каждая операция изменяет только текущие остатки.

Что делать, если нашли под столом неучтенную позавчерашнюю накладную?
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37599528
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перещитать вчерашние остатки само собой
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37605967
OLEG_ZH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan Durak,
а если накладная месячной давности? пересчитываем весь месяц ?
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37606014
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_ZHа если накладная месячной давности? пересчитываем весь месяц ?

А в чём проблема проапдейтить 30 записей?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #37606335
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovOLEG_ZHа если накладная месячной давности? пересчитываем весь месяц ?

А в чём проблема проапдейтить 30 записей?..


Собственно, я лишь хотел обратить внимание на алгоритмическую несостоятельность следующей фразы:

Озверинкаждая операция изменяет только текущие остатки.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
подскажите метод организации склада
    #38180739
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovEdd.DragonВо многих системах учета банально вводят таблицу текущих остатков, чтобы вообще ничего не
суммировать. При большой частоте продаж - это разумно.

Но при этом приходится разруливать update conflict-ы или громоздить бесконфликтную схему.
Извиняйте, что поднимаю затухшую тему.
Стало интересно: кто-нибудь реализовывал на практике бесконфликтную схему коррекции СКЛАДСКИХ остатков (т.е. тех, которые должны всегда соблюдать check (qty>=0) - в отличие от сальдо контрагентов) ?
Dimitry Sibiryakov показывал схему , при которой вместо апдейтов идут инсерты, а планировщиком периодически выполняется "схлопывание" строк по ключу типа contragent_id.
Как приспособить это к складу изделий, в котором остатки всегда должны быть >= 0 ?
У мну есть подозрение , что это можно сделать через deferred constraint\'ы, но серьёзной проверки я не делал.
ЗЫ. Здесь я ответа на этот же вопрос так и не получил. Посоветовали ваять оптимальный код и проч. :-)
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #38180786
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидКак приспособить это к складу изделий, в котором остатки всегда должны быть >= 0 ?
Я не реализовывал, но принципиальных проблем не вижу. Я сделал бы materialized view, в котором схлопываются суммы (то есть собственно считаются текущие остатки), и повесил бы на него constraint или исключение, удерживающее остаток неотрицательным. Refresh fast on commit и дело в шляпе.
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #38180900
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЯ сделал бы materialized view, в котором схлопываются суммы (то есть собственно считаются текущие остатки), и повесил бы на него constraint или исключение, удерживающее остаток неотрицательным. Refresh fast on commit и дело в шляпе.Это слишком лёгкий путь :-) Что делать тем, у кого СУБД не имеет такой волшебности, как матвью ?
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #38181248
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидСтало интересно: кто-нибудь реализовывал на практике бесконфликтную схему коррекции СКЛАДСКИХ остатков?

Как приспособить это к складу изделий, в котором остатки всегда должны быть >= 0 ?

Всё, что упоминалось как решения, есть решения на конкретных СУБД.
Решение будет зависеть от возможностей СУБД.
Тебе нужно под конкретную СУБД?
Или нужно общее решение, которое можно реализовать на конкретном перечне СУБД?
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #38181296
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЧто делать тем, у кого СУБД не имеет такой волшебности, как матвью ?

Разруливать update conflict-ы, если в конкретной СУБД они порождаются. А лучше - брать
СУБД, где их нет. Например - Оракул.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите метод организации склада
    #38181333
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойТебе нужно под конкретную СУБД?Да. Под Firebird.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подскажите метод организации склада
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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