Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
хотелось бы узнать как АЛЛ борется с сабжем... единственное что приходит на ум, так это проверка после заверешние транзакции... но тут нужно вернуть все как было... и чем быстрее тем лучше... (в данный момент интересует реализация в оракле 8м) --------------- Мы - это наши желания. Зигмунд Фрейд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 12:06 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
Кхм ... а где с эим надо бороться ? и что в оракле check констраэйн уже не работает ? а если это совокупность каких либо действий - то обнавляете через процедуру и если сработает констрэейн на чек<0 в ексепшине делайте ролбак ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2004, 13:42 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
Это наверное сделали без хранимых остатков, типа остаток - расчетная величина. Отсюда и траблы: нет поля - нет ограничения. Выход - хранить остаток. Это все мои догадки, и мое ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 09:55 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
делать в два этапа: 1.проверить на нехватку товара 2.если таковой нет, то учесть документ. :) ... ну учёт будет работать на 30% медленее :( делать проверку в конце процедуры и делать откат - нехорошо (ИМХО) Предусмотреть возможность появления минусовых остатков - очень важный и нужный момент и проектировать надо именно с такой возможностью... Возражающим: Не надо говорить, что это нонсенс !.. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:19 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
2LSV >Возражающим: Не надо говорить, что это нонсенс !.. :) Как правило, это не нонсенс, а уголовное преступление. 8-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 11:32 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
остатки можно не хранить, а хранить обороты... исх сальдо = приход-расход > 0 Можно усложнить систему вплоть до реализации активных/пассивных остатков - это просто и даже овердрафта. Все постороить на check constraint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2004, 19:20 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
Обслуживаю две системы: 1. OLTP. Стандартный триггер на Insert,update проверяющий в БД текущих остатков на <0 2. DWH. Просто все запросы организованы с where Ost>0. Отрицательные сразу исключаются(которые все же возникли в OLTP(), но таких мало - 0.000006% за 2003 год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2004, 07:52 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
2Quark А зачем так нагружать систему проверками (которые кстати можно делать периодически для профилактики)? Зачем для ответа на запрос "сколько у меня этого" система должна просчитать весь приход/расход за какой то период? ИМХО проще пересчитать один раз при модификации и пользоваться готовым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2004, 10:09 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
У меня актульные остатки хранятся в отдельной таблице, очень удобно. Соответсвенно контроль за остатками очень прост. При создании расходного/приходного документа остатки изменяются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2004, 10:24 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
хм. что интересно. В банке может быть как отрицательная позиция, так и положительная. Соотвественно, каждая позиция (короткая, длинная) ограничивается свое собственной величиной, которая описывает максимальный допустимый риск в денежной величине. это я все к тому, что реально, отрицательная (короткая) позиция вполне может существовать. насчет остатков - мне кажется, что хранение остатков на конец дня (End Of Day, EOD) более оправдано, чем хранение актуальных остатков, т.к. позволяет значительно повысить быстродействие в мультипоточных системах (n-tier) с больших количеством бизнес-транзакций. ну а ночью (EOD) вполне можно провести вычисление остатков по новым данным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2004, 01:06 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
2AAron насчет остатков - мне кажется, что хранение остатков на конец дня (End Of Day, EOD) более оправдано, чем хранение актуальных остатков, т.к. позволяет значительно повысить быстродействие в мультипоточных системах (n-tier) с больших количеством бизнес-транзакций. ну а ночью (EOD) вполне можно провести вычисление остатков по новым данным. А хранение остатков на конец часа еще более повысит? Какой смысл при каждом запросе считать что-то? Почему при модифицирующей транзакции (которых обычно на порядки меньше чем читающих) сделать X=X+Y это долго и непроизводительно, а вот при каждой читающей транзакции делать X=Xn+Y-Y1+Y2-Y3......+-Yn -это быстро и производительно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2004, 10:15 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
Думаю, что ситуация вполне нормальная и ограничениями с ней бороться не получится. Есть тупой кассовый аппарат, который позволяет кассиру забивать руками код товара. Кассир ошибается и вводит вместо Балтики №3, Балтику №7. Отсюда появляется отрицательный остаток по Балтике №7. Причем ситуация возможно, даже если терминал работает в режиме on-line. И что делать? Не давать провести транзакцию или загрузить в пакетном режиме операции по кассе? Думаю, что надо давать вводить такие операции, а потом отдельным документом исправлять ситуацию. По моему такие ситуации называются пересортицей. Владимир ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 13:51 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
авторКассир ошибается и вводит вместо Балтики №3, Балтику №7. Отсюда появляется отрицательный остаток по Балтике №7. А почему бы сразу не сообщить кассиру, что нет у него Балтики №7 ? Пусть введет правильный код товара и все. Зачем весь этот геморрой с пересортицей ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 09:15 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
авторА почему бы сразу не сообщить кассиру, что нет у него Балтики №7 ? А ежели ошибку сделал не кассир? Представляете: вы стоите у кассы с Балтикой7. Кассир ее вбивает а терминал говорит, мол нету такого на остатках. и начинается: кассир срочно или зовет кого-то старшего и они пытаются списать что-нибудь другое итп. Мне как программисту такие ситуации прикольно наблюдать когда не торопишся и это твою бутылку ищут. Возникает мысль что видимо программеру не доплатили, бизнесс логику не продумали итп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 07:52 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
авторМне как программисту такие ситуации прикольно наблюдать когда не торопишся и это твою бутылку ищут. Возникает мысль что видимо программеру не доплатили, бизнесс логику не продумали итп. Мне кажется не доплачивают не программеру, а тому чуваку, который приходовал эту балтику в компьютер, вот ему и по барабану №7 или №3, потом если че разберемся, или не доплачивают кладовщику который принимает этот товар, а если кладовщик и тот чувак - одно и тоже лицо, то это вообще жопа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 08:25 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
За такие "по барабану" скорее уж не доплачивать надо, а по башке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 10:51 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
2Quark Представляете: вы стоите у кассы с Балтикой7. Кассир ее вбивает а терминал говорит, мол нету такого на остатках. У нас недавно большой магазин открылся и все ессно только отлаживалось. Покупал я там продукты и кассирша не смогла найти в компе какие то консервы. Просто попросила оставить их у нее на кассе. ИМХО великолепное решение проблемы. 8-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 10:55 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
авторПросто попросила оставить их у нее на кассе. Без комментариев, я лежу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 12:33 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
Рад что так развеселил, особенно в пятницу. 8-) Только не особо понял, чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2004, 13:08 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
Просто представил картинку, консервы-то ты так и не попробовал ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 15:09 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
2Серега Я не зря говорил про n-tier. когда приходит сделка, я не знаю на уровне базы данных на какой "счет" ее внести, тем более, что таких может быть несколько. Хотя решение с мгновенным расчетом вполне может существовать, но вряд ли так легко получится его встроить в нашем проекте :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 00:23 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
2Вася Просто представил картинку, консервы-то ты так и не попробовал ? Фу, какой ты... 8-) 2AAron Я не зря говорил про n-tier. когда приходит сделка, я не знаю на уровне базы данных на какой "счет" ее внести, тем более, что таких может быть несколько. А если просто количество считать сразу, а счета проставлять потом? Это ж все таки разные вещи. Хотя решение с мгновенным расчетом вполне может существовать, но вряд ли так легко получится его встроить в нашем проекте :( Да понятно, что у всех свои заморочки и советовать что либо не зная проекта глупо. Просто мне кажется, что с точки зрения "примитивной логики" проще и производительнее считать один раз , чем каждый раз . К тому же на готовый результат проще повесить примитивное ограничение на >=0 (если оно нужно), котрое работает быстрее и надежнее любого варианта с процедурой проверки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 10:00 |
|
||
|
методы борьбы с отрицательными остатками
|
|||
|---|---|---|---|
|
#18+
покумекал я тут, продолжительно... вас почитал... и родил... добавил табличку, в которой ведется история остатков по партиям, которая обновляется после каждой проведенной операции... а потом запросиком: select code_goods, sum(countg), g.title_short, code_ware from docs_ost d, goods g where p_date = ( select max(p_date) from docs_ost d2 where d2.code_goods = d.code_goods and d2.from_code_doc = d.from_code_doc) and d.code_goods = g.code group by code_goods, g.title_short, code_ware мы имеем все остатки на текущий момент... если по конкретному товару то будет значительно быстрее... берем страшный вариант, мол контора много пищущая, мне говорили про реальность в 500документов в день... так вот в таком случае, на скока будет это все дело шустро работать на оркале8/9??? меня пугает конструкция вложенного селекта... и еще... я вот гляуж время вставки новой строки, там точность до секунд... а чего милисекунды не показываются? сдается мне в этом кроется потенциальная жопа... Мы - это наши желания. Зигмунд Фрейд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 12:19 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32541150&tid=1546419]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 516ms |

| 0 / 0 |
