【问题标题】:Accounting database schema [closed]会计数据库架构
【发布时间】:2013-10-13 03:30:08
【问题描述】:

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

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

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

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 账户和贷记销售账户。后来我们收到了客户的付款。其金额高于应付金额。我该如何处理这个未使用的金额?

【问题讨论】:

  • 此类问题最适合向会计师提出。一旦你有了答案,剩下的就是简单的数据处理。这对 SO 来说是题外话。
  • 这个问题似乎是题外话,因为它是关于会计实务的。

标签: c# database winforms database-schema accounting


【解决方案1】:

我制作了一个名为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:Accounts Receivable 的 accountId 和 10000(以便士为单位)的金额。第二个拆分将具有收入的 accountId:Sales 和金额 -10000。为了使交易有效,拆分必须加起来为 0。这使基本会计等式保持平衡。 (资产 = 负债 + 权益 + 收入 - 费用)。

2) 客户多付:

借记资产:支票账户 $120
信贷资产:应收账款 $120

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

借记资产:应收账款 $20
信用资产:支票账户 $20

如果您将其视为收入,您会这样做:

借记资产:应收账款 $20
信用收入:多付 20 美元

【讨论】:

    猜你喜欢
    • 2020-09-20
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 2019-02-07
    • 2017-01-18
    • 2015-08-29
    • 1970-01-01
    相关资源
    最近更新 更多