Debit and credit are two columns
A single signed amount would be smaller and would let a line be both at once by accident. Two columns make the convention explicit, let the balance check be two sums compared, and match every report an accountant already knows how to read. The cost is a constraint the schema cannot express — exactly one of the pair must be non-zero — which has to live in the application or a check constraint.