Ciertamente almacenaría sus suscripciones por separado de la información de sus miembros. Esto no solo le permitirá tener un registro completo de todas las suscripciones, sino que también lo ayudará si necesita tener suscripciones de duración variable. La estructura de sus tablas podría ser algo como esto:
subscriptions
-------------
subscription_id integer
member_id integer
start_date date
end_date date
date_paid datetime
Luego puede usar SQL directamente para encontrar suscripciones a punto de caducar, etc. Entonces, para encontrar cualquier suscripción que caduque dentro de los próximos siete días, podría tener algo como
SELECT
member_id,
MAX(end_date) as expires_date
FROM
subscriptions
GROUP BY
member_id
HAVING
expires_date < DATE_ADD( CURDATE() INTERVAL 7 DAY )