会计数据库架构

时间:2013-10-13 03:30:09

标签: c# database winforms database-schema accounting

之前已经多次询问过...并且没有架构的答案。

有人可以共享会计数据库架构吗?我已经阅读了很多关于会计中的复式会计和关系数据库的相关文章。但是没有关于完整解决方案的完整解释。

以下是我发现对我有用的文章:

1)http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html(金钱运动原则,日记条目)
2)http://compasspointmedia.wordpress.com/2010/04/12/sqldatabase-structure-as-related-to-accounting/(更深入地解释交易记录,发票和付款)

以下是我不清楚的一个问题:

我们以信用方式向客户销售产品。借记AR帐户和信用卡销售帐户。后来我们收到了客户的付款。其金额高于应付金额。我该如何处理这笔未使用的金额?

2 个答案:

答案 0 :(得分:4)

我制作了一个名为Open Accounting的开源会计软件包。这就是它的schema的一部分:

CREATE TABLE account (id BINARY(16) NOT NULL, orgId BINARY(16) NOT NULL, inserted BIGINT UNSIGNED NOT NULL, updated BIGINT UNSIGNED NOT NULL, name VARCHAR(100) NOT NULL, parent BINARY(16) NOT NULL, currency VARCHAR(10) NOT NULL, `precision` INT NOT NULL, debitBalance BOOLEAN NOT NULL, PRIMARY KEY(id)) ENGINE=InnoDB;

CREATE TABLE transaction (id BINARY(16) NOT NULL, orgId BINARY(16) NOT NULL, userId BINARY(16) NOT NULL, date BIGINT UNSIGNED NOT NULL, inserted BIGINT UNSIGNED NOT NULL, updated BIGINT UNSIGNED NOT NULL, description VARCHAR(300) NOT NULL, data TEXT NOT NULL, deleted BOOLEAN NOT NULL DEFAULT false, PRIMARY KEY(id)) ENGINE=InnoDB;

CREATE TABLE split (id INT UNSIGNED NOT NULL AUTO_INCREMENT, transactionId BINARY(16) NOT NULL, accountId BINARY(16) NOT NULL, date BIGINT UNSIGNED NOT NULL, inserted BIGINT UNSIGNED NOT NULL, updated BIGINT UNSIGNED NOT NULL, amount BIGINT NOT NULL, nativeAmount BIGINT NOT NULL, deleted BOOLEAN NOT NULL DEFAULT false, PRIMARY KEY(id)) ENGINE=InnoDB;

说明:您有一个帐户表。这些将保存您的资产,负债,权益,收入和费用帐户。您有一个代表每个会计日记帐分录的事务处理表。您有一个名为splits的表,其中包含日记帐分录中的各个借方和贷方。

我将在上面使用您的示例。

1)赊销给客户:

借方资产:应收帐款$ 100
信用收入:销售$ 100

我们在交易表中插入一行。我们在拆分表中插入两行引用transactionId。第一个拆分将具有Assets:AccountsAccounts的accountId,金额为10000(以美分计)。第二个拆分将具有Income:Sales的accountId,金额为-10000。为了使交易有效,拆分必须总计为0。这使基本会计等式保持平衡。 (资产=负债+权益+收入-费用)。

2)客户多付:

借方资产:支票帐户$ 120
信用资产:应收帐款$ 120

3)您现在欠客户多付的20美元退款。 (您也可以将其识别为收入,但这可能违反公认会计准则。)

借方资产:应收帐款$ 20
信用资产:支票帐户$ 20

如果您将其识别为收入,则会执行以下操作:

借方资产:应收帐款$ 20
信用收入:多付$ 20

答案 1 :(得分:2)

book让我更好地了解会计。希望有人觉得我的回答很有帮助。