2010-12-22 34 views
1

我正在为银行类机构制定BI系统。这个系统应该管理信用合同,发票,付款,处罚和利息。如何管理交易,债务,利息和罚款?

现在,我需要做一个建立发票的方法。我必须计算客户现在需要付多少钱。他有债务,他必须付钱。他还必须支付利息。如果他迟到应付款,他迟到的每一天都会受到处罚。

我认为有2种方式这样做的:

  1. 由于只需1原始状态 - 合同的原始状态。每次计算客户必须支付的每月付款时,请考虑实际付款。
  2. 通过不断制造中间状态,从最后的中间状态开始,只考虑在这两个中间状态之间发生的事件。这意味着需要定期(每日,每月)执行一项工作,采取最后保存的状态,应用更改(应付款项,实际付款,全球常数的变化,例如中央银行控制的罚款率),并保存由此产生的状态。

第一种变体的好处:

  • 总是实际的。如果用过去的日期进行更改(在他向银行付款5天后有人付了发票),他们将正确地反映在结果中。

第一变体的缺陷:

  • 花费很长的计算
  • 印刷与当前结果的文件,如果由于操作正确的数据变化与背面日期输入可以不同。

第二方案的好处:

  • 工作速度快,汇总数据始终可用的搜索和报告。
  • 简单计算

第二方案的缺陷:

  • 极易失败的作业。
  • 过去的错误传播到最后,直到最终结果。
  • 中介的结果,如果从过去的交易新数据到达不能被改变(是可以的,但它很难,并与众多的影响,所以我宁愿把它标记为禁忌)
  • 作业不能成功,没有问题执行如果存在未完成的交易(尚未支付的发票)

是否有其他方法?我可以结合这两者的好处吗?您遇到的其他类似系统中使用了哪一个?请分享任何经验。

回答

3

这种性质的问题总是比第一次出现时更复杂。这个 是我喜欢称为Rumsfeldian problem of the unknown unknown的结果。 基本上,无论你现在做什么,准备对任意的未来规则做出调整。

这是一个艰难的主张。一些未来可能会对您的计算模型产生重大影响的因素是支付,调整和收费。原谅利息期也可能成为一个问题(特别是如果返还日期)。要求 根据“已知”PIT(过去的过去视图)或考虑到 回复到参考PIT后的交易发生的“已知”的内容来提供各种时间点(PIT)计算参考前的PIT(过去的当前视图)。这种性质的计算可能是头部真正的痛苦。

我的建议是从“scratch”(即第一个变体)计算。必要时实施优化(例如,第二种变体),只有在需要满足性能限制时才可使用 。从一开始做计算是一个计算密集型的模型,但在适应意外的左转时通常更灵活。

如果性能是一个问题,但复杂因素(例如,返还交易)的频率相对较低,您可以探索采用两种变体中最好的混合模型。在这里,您存储 当前状态,并仅使用自上次存储状态以来创建新当前状态所发布的那些事务来计算正向 。如果您点击 “复杂化”,则重新从 开始重新建立当前状态。

在长时间运行 中,能够适应意外情况而不触发重新写入,可能比现在削减计算时间更重要。除非必要,否则不要对计算模型设置限制。节省 目前的状态通常会带来一些内置的假设和限制,从而减少适应未来需求的摆动空间。

+0

那么,这种回答的问题。至少我感觉更加自信。谢谢 :) – AlexanderMP 2010-12-23 09:25:32