When it comes to collecting billing information like credit card details you should not be storing this in your db. There are many rules, regulations, and laws that govern storing this type of information and in general it is not appropriate to do so on your site.
If you have a cash or bill me option and the user is forced to login before proceeding with the checkout you can store the order and details in your database tables and have a column to indicate that the order has been paid for or not. When you receive payment you can update the order to indicate that it has been paid for. The main difference with this type of checkout is that you would skip the local checkout server behavior that makes the transaction.