Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

sistema de cobrança recorrente


Eu certamente armazenaria suas assinaturas separadamente de suas informações de membros. Isso não apenas permitirá um registro completo de todas as assinaturas, mas também ajudará se você precisar ter assinaturas de comprimento variável. Sua estrutura de tabelas pode ser algo assim:
subscriptions
-------------
subscription_id  integer
member_id        integer
start_date       date
end_date         date
date_paid        datetime

Então você pode usar o SQL diretamente para encontrar assinaturas prestes a expirar etc.
SELECT
  member_id,
  MAX(end_date) as expires_date
FROM
  subscriptions
GROUP BY
  member_id
HAVING
  expires_date < DATE_ADD( CURDATE() INTERVAL 7 DAY )