Database design 在关系数据库中处理和实现事务(信用/借记)

Database design 在关系数据库中处理和实现事务(信用/借记),database-design,transactions,entity-relationship,audit,accounts,Database Design,Transactions,Entity Relationship,Audit,Accounts,这感觉就像stackoverflow社区中的一篇重复文章。但我真的想验证我关于交易(贷记/借记)的想法,我计划在会计应用程序中实现这一想法 我搜索了整个社区,找到了几个与此主题相关的帖子。但这些帖子中没有一条评论解释了“如果采用这种方法会发生什么事。” 因此,我期待社区会有反对我想法的想法。还有一些建议,以便我可以改进我的设计。 这就是我的应用程序域: 我发现我的客户(一家审计公司)每年最多处理720万笔交易。它包括来自不同公司的多个审计数据。 因此,当数据量达到更高的数值时,处理如此数量的数据

这感觉就像stackoverflow社区中的一篇重复文章。但我真的想验证我关于交易(贷记/借记)的想法,我计划在会计应用程序中实现这一想法
我搜索了整个社区,找到了几个与此主题相关的帖子。但这些帖子中没有一条评论解释了“如果采用这种方法会发生什么事。”
因此,我期待社区会有反对我想法的想法。还有一些建议,以便我可以改进我的设计。
这就是我的应用程序域:
我发现我的客户(一家审计公司)每年最多处理720万笔交易。它包括来自不同公司的多个审计数据。
因此,当数据量达到更高的数值时,处理如此数量的数据可能会影响应用程序的性能。
我在数据库中存储事务数据的方法如下:

将交易和账户作为单独的实体存储。
账户>:账户id(主键)|账户名称|期初余额|当前金额|公司id(FK)
交易:trid(pk)| triidentifier(UUID)| tr|u金额| tr|u状态
存在一种多对多关系

我将贷记和借记视为单独的角色,每个交易和账户都有许多贷记和借记角色

账户1:M信用M:1交易
账户1:M借方M:1交易

当我想注册一笔交易时:
在交易表中注册一笔交易
插入考虑贷方方式的贷方,并反映借方方式,确保总金额中的余额。
平衡将在业务逻辑层实现

当我要检索特定帐户的数据时:
账户ID>通过信用合作社账户ID通过借记进行清算

请考虑我在这个帐户应用领域是新的。所以请帮我做这个设计。

我做这类事情的方式稍微简单一点。请记住,这会稍微分离表示和存储

通常,我将金额存储在股票账户的符号值中,即贷项为正值,贷项为负值

这种方法有一些优点。第一件事是,如果你做的总和(金额)超过一个标准,你可以看到它是借方、贷方还是中性

所以

从交易金额中选择交易ID、金额
按事务ID分组
金额为0的
提供不平衡事务的列表

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