The real advantage of the fully normalized version in the first answer comes when the requirements change -- when someone changes the specs so you have to add types beyond the 3 you've identified.
Like discount, refund, whatever. Those changes do happen.
The normalized structure should let you do that more easily, without needing to change either table structure or most of the programs that use the data.
But the normalized structure does require more investment in the beginning -- every new transaction involves inserting into 2 tables, you need to have a check constraint to control the types, etc.
Generally, you'll do better in the long term with the normalized structure. However, with a simple case lik this, you can sometimes get away without normalizing and not have to pay the consequences (at least, nobody has to pay until you're long gone and it's somebody else's problem).
Professionally, reasonable levels of normalization should be your standard strategy and you should require yourself to have very good reasons for denormalizing.