3

我有以下会计表:

http://sqlfiddle.com/#!3/b93f3/2

我的交易详情表有以下字段:

[transdetailid] [int] IDENTITY(1,1) NOT NULL,
    [transid] [int] NOT NULL,
    [debitaccount] [varchar](10) NOT NULL,
    [creditaccount] [varchar](10) NOT NULL,
    [amount] [money] NOT NULL,
    [isdebit] [bit] NOT NULL,
    [isactive] [bit] NOT NULL,

我认为这张桌子还可以,但我的问题是关于会计交易......

示例:电力承包商向我收取了 1,000 美元的电梯服务费用,然后我将这些信息记录如下:

transdetailid   transid debitaccount    creditaccount   amount  isdebit isactive
    1              1    REPAIRS INCOME   ACC PAYABLE    1300.00    1        1

然后我将不得不支付该账单,因此我进入下一笔交易:

transdetailid   transid debitaccount    creditaccount   amount  isdebit isactive
    2              2    ACC PAYABLE     BANK ACCT       1300.00    0        1

在这里,我可以看到“应付账款”余额0,但是维修收入呢...?如果我进行查询,它会说维修收入仍为 1,300,我想我必须添加另一个字段或其他内容,以便我知道付款交易也会扼杀维修收入。

有什么线索吗?希望我能清楚地解释这一点..

4

1 回答 1

3

您偶然发现的是交易和报告之间的区别。

您的数据库设计存在缺陷,因为您没有将账单与付款联系起来。顺便说一句,这可能非常具有挑战性。通常,由于缺乏更好的词,它是通过使用供应商来完成的。账单来自供应商,付款给供应商。

您可能想在付款记录中包含计费交易。这是一个坏主意,因为这意味着每笔付款必须与一张账单完全匹配。部分付款会怎样?同时支付多张账单怎么办?滞纳金怎么办?

您需要修改您的结构,以包含有关谁在收费以及谁在获得报酬的信息。

于 2012-07-13T17:43:09.830 回答