Mysql
 sql >> Database >  >> RDS >> Mysql

sistema di fatturazione ricorrente

Conserverei sicuramente le tue iscrizioni separatamente dalle informazioni sui tuoi membri. Questo non solo ti consentirà di avere un registro completo di tutti gli abbonamenti, ma ti aiuterà anche se hai bisogno di abbonamenti a lunghezza variabile. La struttura delle tue tabelle potrebbe essere qualcosa del genere:

subscriptions
-------------
subscription_id  integer
member_id        integer
start_date       date
end_date         date
date_paid        datetime

Quindi puoi utilizzare SQL direttamente per trovare abbonamenti in scadenza, ecc. Quindi, per trovare abbonamenti in scadenza entro i prossimi sette giorni potresti avere qualcosa come

SELECT
  member_id,
  MAX(end_date) as expires_date
FROM
  subscriptions
GROUP BY
  member_id
HAVING
  expires_date < DATE_ADD( CURDATE() INTERVAL 7 DAY )