Should credits be stored as negative numbers in a double-entry bookkeeping database?
I've worked for a long time with a range of different types of accounting systems (albeit predominantly with European accounting standards) and the norm is that you use positive numbers for debit entries and negative numbers for credit entries. This means that your assets are positive and your liabilities negative, but your income is negative and costs are positive. So when you're building income statement-related reports you'll need to invert the numbers.

I've seen instances of systems that use separate columns for debit and credit, but to me that is just anti-normalization. Typically, most of those systems also provide a "total" column, which is positive in debit and negative in credit.

As you say, this way every transaction has to balance out to zero (you can probably write some type of constraint to make sure it does).