使用触发器/函数计算对postgresql的兴趣

时间:2011-02-24 14:38:28

标签: postgresql stored-procedures plpgsql banking

我目前正在开发一个简单的银行应用程序。

我已经构建了一个postgresql数据库,具有正确的表和函数。

我的问题是,我不确定如何计算账户的利率。我有一个功能,会告诉我平衡,一次。

如果我们说我们有1个月的期限,我想计算帐户的利息。余额如下:

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

  Balance on end of month: $500

我最初的想法是制作一个for循环,从月中的第一个循环到月中的最后一天,并连续添加该特定日期的利息。

我想在月末使用的功能应该类似于addInterest(startDate,endDate,accountNumber),它应该在表格中插入一行,添加赚取的费率。

有人能带我走上正轨,还是向我展示PL / PGSQL的一些好的学习资源?

修改

我一直在阅读有关游标的内容。我应该用光标走过桌子吗?

我发现使用游标有点令人困惑,这里的任何人都有一些解释清楚的例子吗?

2 个答案:

答案 0 :(得分:2)

银行系统有多种利息计算方式。

利息=余额x比率x天/年

余额类型

  • 定期汇总余额
  • 每日汇总余额

费率类型

  • 固定利率动态利率(根据余额)
  • 动态费率(根据条款)
  • 动态费率(根据时间表)

天数/时间表类型

  • 结束日处理(一天)
  • 月末处理(一个月)
  • 季度处理结束(三个月)
  • 半处理结束(六个月)
  • 年末处理(一年)

年度公式

  • 一年可能包含365天或366天。
  • 您的用户可能希望覆盖一年中的天数,在您的应用中维护一个单独的年份变量属性。

<强>结论

利息应作为例行任务计算。根据个人账户的频率设置,最佳方法是按计划运行。

答案 1 :(得分:0)

manual有一个关于循环和循环查询结果的部分。还有一些用pl / pgsql编写的触发器函数的例子。手册非常完整,这是我所知道的最佳来源。