首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会计系统数据库设计

会计系统数据库设计
EN

Database Administration用户
提问于 2018-11-07 22:21:52
回答 1查看 1.6K关注 0票数 0

会计系统如何更新记录,即标准做法是什么?你是否保存了所有的记录,并实时进行计算,还是每次从最后的金额中加减,比如"$current_balance“。

第一种方法是实时计算,即总结所有存款,减去所有费用,这是获得结果的肯定方法,但随着行数的增加,我可以看到一个明确的可伸缩性问题。

另一方面,积累在一个变量中,比如"$current_balance“,仅仅更新它也有它的缺点。

那么,解决这个问题的推荐做法是什么呢?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-11-07 23:56:59

一般来说,会计系统有一个大的总账表。表中的每一行都是一个事务,其功能更像是一个星型模式,而不是一个传统的3NF关系数据库。通过这种方式,它们通常是星片/雪花和关系的混合体,在可能的情况下将两个世界的最佳结合在一起。它们通常不是严格的3NF数据库,在GL表中有一些项目代码或业务单元代码的重复。例如,它们通常如下所示:

记录通常不会在会计系统中更新。相反,所发生的是添加了额外的事务行,这些行反映了以前输入的值中的修改。例如,如果您希望将以上BU代码A100的事务金额更改为50,而不是其当前值100,则需要添加一行:

如果您想要删除该行,那么您将添加一个类似于上面的行,但在事务数量中添加一个带有-100的行(然后将其标记为事务类型中的反转)。

通常,计算机在添加部分时速度相当快,您可以使用各种分区技巧来提高性能。所有供应商都非常专注于改进性能,所以通常没有问题。随着现代数据库索引,他们通常更新相当快,虽然往往有滞后。

为了实际的性能,会计系统数据通常被放入一个OLAP多维数据集中,这样可以获得更高的速度效率,并且可以回答更多的分析类型查询。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/222045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档