设置复式记账系统供个人使用并帮助管理真正的小型企业。尝试添加一些现在看起来相关的功能。
对于不熟悉会计的人来说,其逻辑是:货币不会被创造也不会被销毁,它只是从一个账户转移到另一个账户。每笔交易都有借方和贷方。几个例子:
雇主的薪水:贷记Salary
、借记Bank Account
- 钱来自您的薪水,并存入您的银行帐户。
支付租金:贷记Bank Account
、借记Rent
- 钱来自您的银行帐户并转到您的租金帐户。
账户可以是“股票”账户,即账户余额是累计的(银行账户就是一个很好的例子),也可以是流量/流量账户,即账户余额是非累计的(租金是一个很好的例子)。
这个想法是有一个JournalDB
存储主要条目的主表。该表JournalTx
存储了交易中涉及的每个帐户。每个条目 (from JournalDB
) 都有一个 ID,并且每个事务 (from JournalTx
) 都链接到一个日记帐条目。基本情况是 中有 1 个条目JournalDB
和两个(或更多)事务JournalTx
。每个条目都可以有 a cost_center
、 aproject
和一些其他属性。
基本上有两种设计方式(根据这个问题) - 每个事务样式一行,每个事务两行。在第一个中,我将有一个信用帐户和借记帐户的行,在第二个(这个)中有 n 行,每个受影响的帐户一个。
Accounts 表是会计科目表(用会计术语)。它具有层次结构 - 我使用了邻接列表样式。虽然不是很频繁,但账户会有 CRUD 操作。我补充说parent_imediate
,parent_second
作为一个非常丑陋的聚合解决方案(例如,计算资产账户的总数),但考虑到挑战(经过长时间的研究,不知道如何做到这一点),这似乎是一个简单的出路 -也欢迎就此事项提出任何意见或建议。
获取报告,通常是 montlhy:基本上所有帐户都包含影响每个事件的聚合交易。最好的情况是数据透视表(列作为日期),每一行都是一个帐户。我想这个的“堆叠”版本也可以正常工作。
帐户只是一个维度 - 例如,我可能想要查询 bycost_center
或 by project
。
我想有能力预算帐户(因此预算表),以及有“目标”(我想休假,这将花费我 1.000 …