小编low*_*e00的帖子

复式记帐模式

设置复式记账系统供个人使用并帮助管理真正的小型企业。尝试添加一些现在看起来相关的功能。

商业规则

对于不熟悉会计的人来说,其逻辑是:货币不会被创造也不会被销毁,它只是从一个账户转移到另一个账户。每笔交易都有借方和贷方。几个例子:

  1. 雇主的薪水:贷记Salary、借记Bank Account- 钱来自您的薪水,并存入您的银行帐户。

  2. 支付租金:贷记Bank Account、借记Rent- 钱来自您的银行帐户并转到您的租金帐户。

账户可以是“股票”账户,即账户余额是累计的(银行账户就是一个很好的例子),也可以是流量/流量账户,即账户余额是非累计的(租金是一个很好的例子)。

设计背后的逻辑

这个想法是有一个JournalDB存储主要条目的主表。该表JournalTx存储了交易中涉及的每个帐户。每个条目 (from JournalDB) 都有一个 ID,并且每个事务 (from JournalTx) 都链接到一个日记帐条目。基本情况是 中有 1 个条目JournalDB和两个(或更多)事务JournalTx。每个条目都可以有 a cost_center、 aproject和一些其他属性。

基本上有两种设计方式(根据这个问题) - 每个事务样式一行,每个事务两行。在第一个中,我将有一个信用帐户和借记帐户的行,在第二个(这个)中有 n 行,每个受影响的帐户一个。

帐户

Accounts 表是会计科目表(用会计术语)。它具有层次结构 - 我使用了邻接列表样式。虽然不是很频繁,但账户会有 CRUD 操作。我补充说parent_imediateparent_second作为一个非常丑陋的聚合解决方案(例如,计算资产账户的总数),但考虑到挑战(经过长时间的研究,不知道如何做到这一点),这似乎是一个简单的出路 -也欢迎就此事项提出任何意见或建议。

主要查询

获取报告,通常是 montlhy:基本上所有帐户都包含影响每个事件的聚合交易。最好的情况是数据透视表(列作为日期),每一行都是一个帐户。我想这个的“堆叠”版本也可以正常工作。

帐户只是一个维度 - 例如,我可能想要查询 bycost_center或 by project

其他特性

我想有能力预算帐户(因此预算表),以及有“目标”(我想休假,这将花费我 1.000 …

mysql database-design

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

database-design ×1

mysql ×1