Mysql
 sql >> Datenbank >  >> RDS >> Mysql

wiederkehrendes Abrechnungssystem

Ich würde Ihre Abonnements auf jeden Fall getrennt von Ihren Mitgliederinformationen speichern. Dies ermöglicht Ihnen nicht nur eine vollständige Aufzeichnung aller Abonnements, sondern hilft auch, wenn Sie Abonnements mit variabler Länge benötigen. Ihre Tabellenstruktur könnte in etwa so aussehen:

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

Dann können Sie SQL direkt verwenden, um Abonnements zu finden, die kurz vor dem Ablauf stehen usw. Um also alle Abonnements zu finden, die innerhalb der nächsten sieben Tage ablaufen, könnten Sie so etwas wie

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