In terms of the data (which is what you're asking), no. You should store it as a signed value. Double-entry bookkeeping is not something the mob does so it can hide the real profits from the IRS :-)
It means transaction have to be balanced (value is never created or destroyed, just transformed). And it'll be a lot easier to balance transactions (and the books) if you just store them in one column with a sign.
In terms of visual presentation, some accountant may like them in separate columns but the vast majority will generate reports with the "negatives" simply indicated differently (such as surrounding them with parentheses).
It may well be that (like many other accounting things), the dual columns are carried forward from many moons ago. It would be easier to add up two columns then subtract the negative total from the positive total to get the current position (as opposed to adding and subtracting in a intermixed fashion). But that's supposition on my part.
See also here.
And just to be clear, an accountant would only do the two-step process using a bank account if the value itself actually passed through that bank account. If it's simply a transfer of value from one user to another, the bank account doesn't get involved.
Hence a transfer of value, user-to-user would be something like (splitting transaction parts from the transaction as a whole, to allow complex multi-account movements)(1):
Transactions:
Txn# Description
1 Transfer from Alice to Bob
TransactionParts:
Txn# Account Value
1 Alice account (liab) 10
1 Bob account (liab) -10
One where the value passed through your bank account could be:
Transactions:
Txn# Description
1 Transfer from Alice via account
TransactionParts:
Txn# Account Value
1 Alice account (liab) 10
1 Bank account (asset) -10
1 Bank account (asset) 10
1 Bob account (liab) -10
That's keeping in mind the, to the laymen, weirdness of assets/liabilities having negative values when they're good for you :-)
(1) To avoid confusion (see comments), I should stress that the separation into parts is for the allowance for a transaction to easily hit a multitude of account codes (various assets, expenses, and so on). The transaction itself is still a single atomic operation.