Дизайн таблицы бухгалтерских операций

У меня есть следующие бухгалтерские таблицы:

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,

Я думаю, что таблица в порядке, но мой вопрос касается бухгалтерских операций ...

Пример: подрядчик по электротехнике взимал с меня 1000 долларов за обслуживание лифта, затем я записываю эту информацию следующим образом:

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, но как насчет Дохода от ремонта ...? Если я сделаю запрос, он скажет, что доход от ремонта все еще составляет 1300, и я думаю, мне нужно добавить еще одно поле или что-то в этом роде, чтобы я знал, что транзакция платежа также убивает доход от ремонта.

Есть подсказка? Надеюсь, я ясно объяснил это ..


person VAAA    schedule 13.07.2012    source источник


Ответы (1)


Вы обнаружили разницу между транзакциями и отчетностью.

У вашей базы данных есть изъян, потому что вы не связали счет с оплатой. Кстати, это может быть довольно сложно. Часто это делается, если не сказать точнее, с помощью поставщика. Счет поступает от продавца, оплата поступает поставщику.

У вас может возникнуть соблазн включить платежную транзакцию в платежную запись. Это плохая идея, потому что это означает, что каждый платеж должен точно соответствовать одному счету. Что происходит с частичными платежами? А как насчет одновременной оплаты нескольких счетов? А как насчет штрафов за просрочку платежа?

Вам необходимо изменить свою структуру, включив в нее информацию о том, кто взимает плату и кому платят.

person Gordon Linoff    schedule 13.07.2012
comment
Вы совершенно правы. У вас есть или предлагаете другая структура? Буду признателен - person VAAA; 13.07.2012
comment
Я разместил этот вопрос: stackoverflow.com/questions/11479800 / - person VAAA; 14.07.2012