C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Алгоритм, Как правильно это сделать
CoderDecoder
Отправлено: 08.12.2003, 15:48


Ученик-кочегар

Группа: Участник
Сообщений: 26



Имеются таблицы Приходб Перемещениеб Продажаб Возврат и Остаток. Речь идет конечно же о складской программе. Так вот, как лучше осуществить ну скажем операцию редактирования записи в таблице Перемещение (т.е. перемещение со склада на склад)? Я удаляю редактируюмую запись из таблицы Перемещение, произвожу необходимые изменения в таблице связанной с этой операцией (Остаток), а затем уже измененные на форме редактирования данные заношу в таблицу Перемещение как новую запись ну и произвожу изменения опять же в связанной с этой операцией таблице Остаток.
Что то мне не подуше такой алгоритм. Кто имел дело с созданием такого рода программ подскажите как все таки правильней редактировать запись в таблице, изменение которой должно отражаться в других таблицах.
Заанее спасибо.
** pasha
Отправлено: 08.12.2003, 18:06


Не зарегистрирован







А какая база данных ?

Если InterBase/FireBird — то используйте
механизм внешних ссылок с необходимыми условиями,
и механизм триггеров, чтоб изменение в одной из
таблиц автоматически приводило к изменению в
зависимых или на которые установлен триггер.


QUOTE

произвожу необходимые изменения в таблице связанной с этой операцией (Остаток)


Не надо, надо чтобы это происходило автоматом.
То есть на стоит триггер на изменение таблицы
Перемещение, в котором, например, вызывается
хранимая процедура, подсчитывающая остаток
в таблице Остаток.
Nick
Отправлено: 13.12.2003, 09:46


Машинист паровоза

Группа: Участник
Сообщений: 247




Table
Documents — шапка документов
DocsData — данные документов
Remains — текущие остатки по регистрам. (Быстрое получение информации)
Spisanie — отражение что именно списано по документу (для отмены и статистики)

Типы документов — 1 — накладная
приход в дебет твоего склада 1
расход в кредит твоего склада 1
внутр перем Дебет Склад 1 Кредит Склад 2

Правда я сделал несколько типов
21  — приход
24  — расход
213 — внутр перемещения


CodeDecoder
Отправлено: 13.12.2003, 18:00


Не зарегистрирован







А если база в Paradox-e ?
RomanDenisov
Отправлено: 06.01.2004, 23:04


Не зарегистрирован







Можно рекомендовать изменить в корне саму модель складского учета

База состоит из таблиц:

1) Приход на склад (что, когда, сколько и т.д.)
2) Расход со склада (что, кодга, сколько, куда и т.д.)

В значение поля "куда" таблицы расходов можно записывать и остаток, и другой склад.

В такой постановке состояние склада формируется запросом


Вернуться в Работа с базами данных в C++Builder