早在十月份,克里斯托弗·约翰逊就曾询问过 会计软件设计模式

他收到了好几个答案,但基本上都是一样的,都指向 马丁·福勒斯会计模式.

我真的不认为福勒斯模式有什么用处。对于更简单的会计系统来说,它们似乎过于复杂,因此我正在重新讨论克里斯托弗的问题并寻找更多选择,最好是针对较小的系统。

这主要是一个基于现金的系统,其中用户拥有类似于银行的账户。他们可以登录(基于网络)并检查余额、进行某些交易等。

我想它更像是 Paypal 或信用卡公司,而不是银行,但规模较小。它不必处理税收、摊销或任何您在成熟的会计系统中会看到的事情。只是余额和交易。

那么,任何人都可以指出基于会计的软件设计的任何额外资源,甚至是简单会计系统的良好实现吗?

有帮助吗?

解决方案

  

所以任何人都指向了会计基础软件设计或简单的会计制度,甚至好的实现任何额外的资源?

免费电子货币的计划查找您需要的帮助。它提供了一个基本的交易和平衡的框架。这是故意简单和抽象的,所以可以提供有用的设计见解,特别是如果你想测试新想法。

联环是更实际的。它涵盖用户帐户和交易。

MyBanco 是另一个开源银行系统,支持用户的银行帐户和基于Web的访问。它可以与虚拟和实际货币被使用。

所有这些都是开源所以可以直接检查出文档,体系结构和代码。

顺便说一句,如果你真的只在结余及交易感兴趣的话,那么它听起来像与声誉,人缘任何图案或项目,或指向系统将可能有相关的重叠......

其他提示

Fowler的图案的过于复杂。他们对所需要的。你是不太可能能够建立更简单的东西没有得到麻烦与任何最终用户或会计。

当我实施会计时,它是日记帐、交易、帐户和帐户类型的典型模型。

tblTransactions
    - Amount
    - AccountID1
    - AccountID2
    - Type [CR/DR]
    - DateEntered

那么我也有一个 tblJournals 它在明显的基础上对交易进行分组。您还可以添加 JournalTypes,它包含日志类型的一般描述,以便您可以检测到好的内容(反转等)。

这很好,因为在这个模型下逆转是微不足道的。您只需收集日记帐的所有交易,然后交换类型即可。

tblTransactions 有一个触发器,触发器根据类型针对特定帐户更新“CalculatedBalance”。然后,您还可以在给定时间段内运行报告,等等。

实现这一点不需要太多的会计知识,而且简单而有效。

谷歌搜索“两阶段提交”

本身不是设计模式,但您需要确保像这样的操作“将$金额从$account1转移到$account2”曾经 “提款”没有匹配的“存款”...IE。如果在“存款”完成之前断电,则“取款”将回滚(撤消)

可提交事务由可撤消(可回滚)子事务组成......

  1. 获取所需权限:微不足道的拒绝,“资金不足”
  2. 开始“两阶段提交”
  3. 添加子交易
  4. 提交或回滚

警告:BCD 数学的发明是为了防止 Base 10 数学中的舍入错误。你没有提到国际问题,但你需要定点或“高精度”数学、货币转换,以及所有其他......

我其实MyBanco的作者,如果您想任何帮助,只是给我发电子邮件:)

存储货币作为分(整数)代替美元(浮点)。这不是一个设计,但它可能更有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top