Určitě bych uložil vaše předplatné odděleně od informací o vašich členech. Nejen, že vám to umožní kompletní záznam všech předplatných, ale také pomůže, pokud potřebujete mít předplatné s proměnnou délkou. Struktura vašich tabulek může být něco takového:
subscriptions
-------------
subscription_id integer
member_id integer
start_date date
end_date date
date_paid datetime
Pak můžete přímo použít SQL k vyhledání předplatných, jejichž platnost vyprší atd. Chcete-li tedy najít předplatná, jejichž platnost vyprší během příštích sedmi dnů, můžete mít něco jako
SELECT
member_id,
MAX(end_date) as expires_date
FROM
subscriptions
GROUP BY
member_id
HAVING
expires_date < DATE_ADD( CURDATE() INTERVAL 7 DAY )