wizy@2020 Ответов: 3

Как лучше всего рассчитать баланс клиента?


Всем привет,

Мне нужна помощь с нижеследующим

Фон
Есть два стола, вывод средств и депозит. Каждый код магазина, сумму и дату.

Каков наилучший способ расчета баланса клиента
Вариант 1.
Добавить еще одну таблицу под названием customer_balance с поля "кодклиента", равновесие и баланс обновление поля на каждой проводке.

можно использовать триггеры sql

Вариант 2.
баланс = сумма депозитов клиентов - сумма снятия средств

SQL хранимых procudure или представлении могут быть использованы


Я также хочу знать, как банковские системы и системы управления запасами рассчитывают остатки

Что я уже пробовал:

баланс = сумма депозитов клиентов - сумма снятия средств

3 Ответов

Рейтинг:
28

CHill60

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

Смысл был в том, чтобы найти баланс (если вы извините за каламбур) между накладными расходами на выполнение вычислений с 0-го дня и хранением данных и их обновлением.

Ключ в том, что у вас должны быть какие - то средства определения "последнего времени обновления баланса" - да, у вас может быть отдельная таблица с ее собственным идентификатором, но лично я бы просто сохранил "баланс на дату" и "последнюю дату баланса" в таблице счетов (в нашей системе у каждого клиента может быть много счетов).

Я не согласен с этим

Цитата:
Есть два стола, вывод средств и депозит. Каждый код магазина, сумму и дату.
Для меня имеет больше смысла иметь таблицу "транзакция" с идентификатором клиента, суммой (которая может быть отрицательной для снятия средств) и датой транзакции. Транзакции в банковской сфере также будут иметь справочное поле (текст в свободном формате) и уникальный идентификатор.


Рейтинг:
10

Gerry Schmitz

Ты уже встал не с той ноги:

"Снятие средств и депозиты" - это просто "транзакции" (кредиты и дебеты), которые должны были быть реализованы как "одна" таблица (а не 2).

Проводки разносятся по "счетам".

Счета могут быть денежными (например,$) или "статистическими" (например, количество единиц); и ведутся в "главной книге".

Подробные запасы и т. д. ведутся в "суб-бухгалтерских книгах" с конкретными требованиями к прикладным данным; и относятся детали к сводным счетам "главной книги".


Рейтинг:
0

Mehdi Gholam

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


wizy@2020

Спасибо за ваше представление