热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

信用体系:基于历史还是基于平衡?

如何解决《信用体系:基于历史还是基于平衡?》经验,为你挑选了2个好方法。

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

    简单一:将用户信用存储balance在数据库中,并记录所有操作("添加","扣除"),但不用于计算最新余额.

    基于历史:不要将余额存储在数据库中.通过查看交易历史来计算余额,例如("添加","扣除")

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

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

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



1> joelparkerhe..:

绝对使用两者.

基于余额的方式使您可以快速访问当前金额.

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

请参阅Ruby Toolbox以获取簿记和Plutus复式簿记宝石.

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

有关日志记录的详细信息,请参阅:确保事件日志文件可验证性的技术.

对于有信誉的开源代码,您可能需要查看:http://www.gnucash.org/


我曾经在一个处理小型金融服务公司的余额/会计的系统上工作,并且可以保证这个答案是100%正确的.

2> Joel Brown..:

添加和扣除信用意味着您可能还需要了解这些信用来自哪里以及它们去了哪里.每当你遇到这种情况时,无论是货币还是其他需要跟踪和计算的数量,你都应该考虑使用双重记账模式.

这种模式已经运行了几个世纪,并为您提供了所需的所有功能,以便能够看到您的余额以及它们如何成为这样:

审计所有交易的日志(包括"基金"的来源和汇点)

随着时间的推移,所有帐户的余额(如果您选择记录)

轻松验证记录的正确性

能够"一次写入" - 没有更新意味着没有篡改

如果您不熟悉这些细节,请从这里开始:双重记录簿记或询问已经参加过簿记入门课程的任何人.

您要求使用Ruby on Rails开源解决方案,您可以将其插入到应用程序中.你可以使用Plutus.以下是Github上此项目描述的摘录:

plutus插件提供了一个完整的双入口会计系统,可用于任何Ruby on Rails应用程序.该插件遵循一般双重记录簿记惯例.... Plutus包括维护您的帐户,条目和借记和信用的表格.每个条目都可以有很多借记和贷记.记录您的业务交易的条目表基本上是您的会计日记帐.


推荐阅读
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 本文介绍了Oracle和IBM DB2数据库管理系统当前的最新版本,包括它们的主要特点、功能改进以及发布日期。文章详细探讨了两个系统在企业级应用中的表现,并提供了对各自版本更新的重点解析。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文介绍 SQL Server 的基本概念和操作,涵盖系统数据库、常用数据类型、表的创建及增删改查等基础操作。通过实例帮助读者快速上手 SQL Server 数据库管理。 ... [详细]
author-avatar
俊铭士弘政翰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有