Остатки товара.
От | vlads |
---|---|
Тема | Остатки товара. |
Дата | |
Msg-id | web-2209979@mx45.intranet.ru обсуждение исходный текст |
Ответы |
Re: [pgsql-ru-general] Остатки товара.
|
Список | pgsql-ru-general |
Допустим, есть справочник товаров (tovar) с двумя полями x(Serial) и name(text) т.е. код товара и его наименование. А также справочник складов (sklad) с аналогичными полями: x(Serial) и name(text) Третий справочник: справочник операций прихода/расхода (oper): x(Serial), dat(data), xtovar(int), xsklad(int) и kol(int) где поле kol - это кол-во прихода или расхода (штук) товара dat - дата операции. а xtovar и xsklad - ссылки на коды товара и склада. Задача такова. При добавлении строки oper система должна автоматически в каком-нибудь третьем справочнике хранить актуальные остатки товара: справочник остатков (ost) x(Serial), xtovar(int), xsklad(int) и kol(int). Проблема, с которой я к Вам обращаюсь: Как я понимаю - это работа с триггерами. Алгоритм такой: - Триггер должен сначала понять, есть ли вообще строка в справочнике ost (xtovar-xsklad) и если её нету - создать новую с нулевой суммой. - Ну и в существующую или в созданную новую строку добавить/отнять необходимую сумму товара. Вопросов несколько: 1) Если это делают несколько пользователей - не случится ли так что два пользователя одновременно не найдут пару (xtovar-xsklad) и создадут каждый свою такую пару. И получится дубляж строк. Как этого избежать. 2) Как понять триггеру, что нужной строки с уникальной парой (xtovar-xsklad) нет, чтобы он создал. 3) Может кто то какой то другой вариант решения проблемы. Заранее спасибо.
В списке pgsql-ru-general по дате отправления: