sod*_*den 50 database accounting database-design
有没有人知道或有任何链接到网站,描述如何为双重记账系统设计数据库模式的细节?
我确实找到了一堆文章,但非常非常清楚.如果有人可以帮助我,我将不胜感激.
小智 51
创建以下表格
为了简单起见,我们将省略account_type表,contact_type表等.
确定表之间的关系并进行设置
我们有以下架构(一对多关系):
CONTACT ———< TRANSACTION ———< LINE_ITEM >——— ACCOUNT
Run Code Online (Sandbox Code Playgroud)
为每个表添加适当的字段
根据需要创建尽可能多的新事务
例如,要在数据库中添加新事务,请在事务表中添加新记录并填写字段,选择联系人姓名,输入日期等.然后将新子记录添加到受影响的每个帐户的父事务记录中.每个交易记录必须至少有两个子记录(在复式记账系统中).如果我以20美元的现金购买一些奶酪,将子记录添加到子记录中的交易记录中,选择现金帐户并在金额字段中记录-20.00(负数).添加新的子记录,选择Groceries帐户并在金额字段中记录20.00(正).子记录的总和应为零(即20.00 - 20.00 = 0.00).
根据上表中存储的数据在数据库中创建报告
该查询为我提供了数据库中的所有记录,以便事务行项子记录按帐户分组,按日期排序,然后按事务ID排序.创建一个计算字段,该字段提供事务line_items记录中的amount字段的运行总计以及您认为必要的任何其他计算字段.如果您希望以借记/贷记格式显示金额,请在数据库查询中创建两个计算字段,其中一个字段称为借记,另一个称为贷记.在借方计算字段中,输入公式"如果line_item表中金额字段中的金额为正数,则显示金额,否则为空".在信用计算字段中,输入公式"如果行项目表中金额字段中的金额为负数,则显示金额,否则为空".
基于这种相当简单的数据库设计,您可以不断添加更多字段,表格和报告,以便为数据库添加更多复杂性,以跟踪您的或您的业务财务状况.
Les*_*lie 44
这是您可能会发现有用的一个链接:
http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html
更新:替代链接(原始的链接似乎被打破):
Ken*_*itt 10
我想我也不妨捅它.评论很感激 - 我会根据任何人的反馈改进设计.我将使用SQL Server(2005)T-SQL语法现在,但如果有人有兴趣在其他语言,让我知道,我会添加更多的例子.
在复式记账系统中,基本要素是账户和交易.基本的"理论"是会计等式:权益=资产 - 负债.
结合会计等式中的项目和两种名义账户,收入和支出,账户的基本组织只是一个嵌套账户的森林,(最小)五棵树的根源是:资产,负债,权益,收入和支出.
[我正在为层次结构研究好的SQL设计......稍后我会用具体的内容更新它.]
SQL团队文章SQL中的更多树和层次结构中记录了一个有趣的层次结构设计.
每笔交易都包含均衡的借方和贷方金额.对于每笔交易,借方金额和贷方金额总额必须完全相等.每笔借记和贷记金额都与一个帐户相关联.
[更多关注...]