Как лучше реализовать подсчет финансов? Добрый день. Интересуют какие нибудь заметки, мнения, статьи на алгоритм реализация подсчета финансов разных счетов с минимальной загрузкой на систему.
Есть несколько счетов, на всех происходят приход, расход или перевод(транзакция) средств.
Я веду таблицу в БД. id, typeTransaction, accountId, datetime, sum, totalsum
Id, Тип транзакции(приход, расход или перевод), Аккаунт, дата, сумма транзакции, окончательная сумма после транзакции
При добавление транзакции в хронологическом порядке - я делаю просто +- к нужно счету.
Вопрос в следующем, как лучше организовать перерасчет при редактировании операции из архив ( скажем три дня назад, когда уже впереди скажет более 1000 операции)
У меня две мысли
1) Обновляем запись в БД + делаем перерасчет ( последовательное сложение и вычитание сумм с даты обновленный записи используя поле sum - foreach и херово sql запросов) - плохо тем, что если отредактировал запись 1 года назад ( ну всякое бывает) то долгий перерасчет, зато точно.
2) Достаем еще неотредактированную запись из БД и сохраняем diffSum - разница между новой и старой sum текущей записью. Обновляем. А потом одним sql запросом set sumTotal = sumtotal + diffSum.
Тут нагрузка минимальная и всего 1-2 SQL запроса.
У кого какие мысли на этот счет и еще идеи в плане надежности цифр и подсчетов? Спасибо!
По сути тотже zenmoney и easyfinance работают безотказно. Хотелось бы узнать какие у них алгоритмы и схемы БД.

21 Авг 2019 в 07:08
203 +1
0
Ответы
1

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

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

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

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир