Рассчитать проценты на postgresql с помощью триггера / функции

В настоящее время я работаю над простым банковским приложением.

Я создал базу данных postgresql с правильными таблицами и функциями.

Моя проблема в том, что я не уверен, как рассчитать процентную ставку по счетам. У меня есть функция, которая подскажет мне баланс по времени.

Если мы говорим, что у нас есть 1-месячный период, где я хочу рассчитать проценты по счету. Баланс выглядит так:

  February     Balance
  1.           $1000
  3.           $300
  10.          $700
  27.          $500

  Balance on end of month: $500

Мои первые мысли состоят в том, чтобы сделать цикл for, повторяя цикл с 1-го числа месяца до последнего дня месяца и добавляя проценты, заработанные за этот конкретный день подряд.

Функция, которую я хочу использовать в конце месяца, должна выглядеть примерно так: addInterest(startDate,endDate,accountNumber), который должен вставить одну строку в таблицу, добавив заработанную ставку.

Может ли кто-нибудь привести меня на правильный путь или показать мне хорошие учебные ресурсы по PL/PGSQL?

редактировать

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

Я нахожу немного запутанным использование курсоров, кто-нибудь здесь с некоторыми хорошо объясненными примерами?

2 ответа

Решение

Существуют различные способы расчета процентов в банковской системе.

Проценты = Баланс х Ставка х Дни / Год

Типы Балансов

  • Периодический совокупный баланс
  • Ежедневный совокупный баланс

Типы ставок

  • Динамическая ставка с фиксированной ставкой (в зависимости от баланса)
  • Динамическая скорость (в зависимости от срока)
  • Динамическая скорость (по расписанию)

Типы Дней / Расписания

  • Обработка в конце дня (один день)
  • Обработка на конец месяца (один месяц)
  • Обработка в конце квартала (три месяца)
  • Конец половины обработки (шесть месяцев)
  • Обработка на конец года (один год)

Формула года

  • Год может состоять из 365 или 366 дней.
  • Ваш пользователь может захотеть переопределить количество дней в году, сохранить отдельное свойство переменной year в вашем приложении.

Заключение

Проценты следует рассчитывать как рутинное задание. Наилучшим подходом было бы то, что он работал бы по расписанию в зависимости от частоты настройки отдельных учетных записей.

В руководстве есть раздел о циклах и циклическом просмотре результатов запроса. Есть также примеры триггерных функций, написанных на pl/pgsql. Руководство очень полное, это лучший источник, который я знаю.

Другие вопросы по тегам