处理和实施关系数据库中的事务(信用/借记)

时间:2016-03-03 09:56:35

标签: database-design transactions entity-relationship audit accounts

这可能感觉就像stackoverflow社区中的重复帖子。但我真的想验证我的交易(信用/借记)的想法,我计划在会计应用程序中实施 我搜索了社区,发现了几个与此主题相关的线索。但是这些主题中的评论没有解释"如果实施该方法将会发生什么。 "
因此,我希望社区能够反对我的想法。 以及建议,以便我可以改进我的设计 所以这是我的应用程序域:
我发现我的客户(审计公司)每年最多处理(粗略的轮数)720万次交易。它包括来自不同公司的若干审计数据 因此,当数据量达到更高的数量时,处理这样的数据量可能会影响应用程序的性能 我在DB中存储交易数据的方法如下:

  

将交易和账户存储为单独的实体   帐户>:accid(PK)| accname | openningbalance | currentamount | comp_id(FK)
  交易>:trid(pk)| tridentifier(UUID)| tr_amount | tr_state
多对多关系。

我将Credit和Debit视为单独的角色,每个交易和帐户都有许多Credit和许多借记角色。

  

帐户 1:M 信用 M:1 交易
  帐户 1:M 借记 M:1 交易

当我想注册交易时:
在交易表中登记交易
在考虑信用方式的情况下插入信用额并反映确保总金额余额的借方方式。
平衡将在业务逻辑层实施

当我想检索特定帐户的数据时:
accid>通过借记卡通过信用社联系方式进行搜索
请考虑我是此帐户申请域中的新用户。所以帮助我完成这个设计。

1 个答案:

答案 0 :(得分:0)

我做这种事的方式有点简单。请记住,这会将演示文稿和存储区分开来。

通常我在与权益账户相关的符号值中存储金额,即信用为正,对于借方为负。

这种方法有一些优点。第一件事是,如果您对一个标准进行总和(金额),您可以看到它是借方,贷方还是中性。

所以

  select transactionid, sum(amount) from transaction_amounts
group by transactionid
  having sum(amount) <> 0

为您提供不平衡交易清单。