ruby-on-rails – 信用系统:基于历史还是基于平衡?

我打算写一个简单的信用系统,用户可以在系统中“添加”,“扣除”信用.目前我正在考虑两种方法.

>简单一:将用户的信用存储在数据库中作为余额字段,并记录所有操作(“添加”,“扣除”),但不用于计算最新余额.
>基于历史记录:不要将余额存储在数据库中.通过查看交易历史来计算余额,例如(“加”,“扣除”)

我认为这两种情况都有效,但我想看看在设计这样一个系统时是否有任何警告,特别是我赞成基于历史的系统.

或者,有没有我使用的参考实现或开源模块?

更新:或者是否有像AuthLogic这样基于Ruby / Rail的模块,因此我可以插入和播放现有代码而无需重新发明轮子(例如事务,回滚,安全性等)?

解决方法

绝对使用两者.

>基于余额的方式使您可以快速访问当前金额.
>基于历史的方式为您提供审计.历史表应存储交易(如您所述),时间戳,交易发生前的余额,理想情况下是跟踪资金来源/目的地的方式.

Ruby Toolbox for bookkeepingPlutus double-entry bookkeeping gem.

此外,如果您的信用系统可能会影响用户,那么我建议您也使用日志记录,理想情况下请阅读安全日志验证和可证明的时间戳链接.

>有关记录详细信息,请参阅:techniques for ensuring verifiability of event log files.
>对于有信用的开源代码,您可能需要查看:http://www.gnucash.org/

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...