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

ここでは、"Acc Payable" Balance0になっていることがわかりますが、 Repairs Incomeはどうでしょうか? クエリを実行すると、修理収入はまだ 1,300 と表示されます。別のフィールドまたは何かを追加する必要があると思います。そのため、支払いトランザクションによって修理収入も失われることがわかります。

どんな手掛かり?これを説明することで私が明確だったことを願っています..

4

1 に答える 1

3

あなたが遭遇したのは、トランザクションとレポートの違いです。

請求書を支払いに関連付けていないため、データベース設計に欠陥があります。ところで、これは非常に難しい場合があります。多くの場合、適切な言葉がないため、ベンダーを使用して行われます。請求書はベンダーから送られ、支払いはベンダーに送られます。

請求トランザクションを支払い記録に含めたくなるかもしれません。これは、各支払いが 1 つの請求書と正確に一致する必要があることを意味するため、悪い考えです。分割払いはどうなりますか?複数の請求書を同時に支払う場合はどうなりますか? 延滞料金はどうなりますか?

構造を変更して、課金を行っているのは誰で、誰が支払われているのかについての情報を含める必要があります。

于 2012-07-13T17:43:09.830 に答える