Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
414 views
in Technique[技术] by (71.8m points)

c# - Accounting Database - storing credit and debit?

When you store a transaction into a database

1) Do you store Credit and debit in the same record under two different columns? (without the positive or the negative sign)

Example 1A

TABLENAME
...
...
(Credit) null
(Debit) 100

Example 1B

TABLENAME
...
...
(Credit) 250
(Debit) null

Or

2) Do you store 1 value with a positive for credit, and a negative sign for debit?

Example 2A

TABLENAME
...
...
(Amount) -100

Example 2B

TABLENAME
...
...
(Amount) 250
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Accountants (and many bookkeepers, if they're any good) know that there is absolutely no difference between credits and debits. They're simply movements of value.

They should be stored in the same column, with a signed value. That makes double-entry accounting so much easier(a). Some people believe that double entry accounting means you keep two sets of books, one for the tax department (to minimise tax paid) and one for reality.

However, it really means that every transaction is balanced, that it has a credit and debit entry although they often consist of lots of parts rather than just two, and they cross freely between the balance sheet (e.g., equity, assets, liabilities) and the profit and loss (e.g., income, expenditure). For example, buying some shares with brokerage may be:

cash at bank     Asset     2019.95 cr
shares at cost   Asset     2000.00 dr
brokerage        Expense     19.95 dr
                           ----------
                              0.00

(a) You can treat me as an authority here(b). I've worked on multiple commercial-scale accounting packages, one of which was huge. More importantly, my wife is a CA and she agrees with me, and that's unusual enough that I have to be right :-)


(b) Of course, you shouldn't treat anyone as an authority(c). "Everyone, by the age of 30, is either their own doctor or an idiot" and so on. Make sure you understand why something is accepted as "right", don't just blindly follow the crowd.


(c) Unless it's me :-)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...