在线支付的数据库设计

I have two payment gateways Paypal and Authorize.net on my website. There are following payment types:

  1. Paypal (One time payment)
  2. Paypal (Recurring Payment, charge every month)
  3. Authorize.net (One time payment)
  4. Authorize.net (Recurring Payment)

Can you guys help me out with the database design? I want to know what could be the best possible way to store such transactions (of different types and multiple payment gateways) so that it is clean and :

  1. Easy for generating reports
  2. Apply filters based upon payment types, filter recurring payments and check history of recurring payments etc.

Edit: It is an SQL database. I want to store most of the information provided by the payment gateway like transaction id, payment type, status, amount etc. And in case of recurring i want to store billing cycle for which payment has been made and information which is useful for tracking the information.

Thanks in Advance