Jef*_*sen 2 c# database accounting winforms database-schema
之前已经被问过很多次了……关于模式没有答案。
有人可以共享会计数据库架构吗?我已经阅读了许多有关重复输入记帐和记帐中的关系数据库的文章。但是,对于完整的解决方案的外观还没有完整的解释。
以下是我发现对我有用的文章:
1)http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html(货币变动原理,日记帐分录)
2)http://compasspointmedia.wordpress.com/2010/04/12/sqldatabase-会计相关结构/(有关交易记录,发票和付款的更深入的说明)
这是我仍然不清楚的问题之一:
我们以信贷方式向客户出售产品。借方AR帐户和贷方销售帐户。后来我们收到了客户的付款。它的金额高于应付金额。我该如何处理未使用的金额?
小智 6
我制作了一个名为Open Accounting的开源会计软件包。这是其架构的一部分:
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;
Run Code Online (Sandbox Code Playgroud)
解释一下:您有一个帐户表。这些将保存您的资产,负债,权益,收入和费用帐户。您有一个代表每个会计日记帐分录的事务处理表。您有一个名为splits的表,其中包含日记帐分录中的各个借方和贷方。
我将在上面使用您的示例。
1)赊销给客户:
借方资产:应收帐款$ 100
贷方收入:销售$ 100
我们在交易表中插入一行。我们在拆分表中插入两行引用transactionId。第一个拆分将具有Assets:AccountsAccounts的accountId,金额为10000(以美分计)。第二个拆分将具有Income:Sales的accountId,金额为-10000。为了使交易有效,拆分必须总计为0。这使基本会计等式保持平衡。(资产=负债+权益+收入-费用)。
2)客户多付:
借方资产:支票帐户$ 120
贷方资产:应收帐款$ 120
3)您现在欠客户多付的20美元退款。(您也可以将其识别为收入,但这可能违反公认会计准则)。
借方资产:应收帐款$ 20
贷方资产:支票帐户$ 20
如果您将其识别为收入,则可以执行以下操作:
借方资产:应收帐款$ 20
贷项收入:多付款项$ 20
| 归档时间: |
|
| 查看次数: |
3188 次 |
| 最近记录: |