Mysql
 sql >> Base de données >  >> RDS >> Mysql

système de facturation récurrente

Je stockerais certainement vos abonnements séparément des informations de vos membres. Non seulement cela vous permettra un enregistrement complet de tous les abonnements, mais cela vous aidera également si vous avez besoin d'abonnements à durée variable. La structure de vos tables pourrait ressembler à ceci :

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

Ensuite, vous pouvez utiliser SQL directement pour trouver les abonnements sur le point d'expirer, etc. Donc, pour trouver les abonnements qui expirent dans les sept prochains jours, vous pourriez avoir quelque chose comme

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