Jag skulle verkligen lagra dina prenumerationer separat från din medlemsinformation. Detta ger dig inte bara en fullständig förteckning över alla prenumerationer utan kommer också att hjälpa dig om du behöver ha prenumerationer med variabel längd. Din tabellstruktur kan vara ungefär så här:
subscriptions
-------------
subscription_id integer
member_id integer
start_date date
end_date date
date_paid datetime
Sedan kan du använda SQL direkt för att hitta prenumerationer som håller på att löpa ut etc. Så för att hitta eventuella prenumerationer som löper ut inom de närmaste sju dagarna kan du ha något liknande
SELECT
member_id,
MAX(end_date) as expires_date
FROM
subscriptions
GROUP BY
member_id
HAVING
expires_date < DATE_ADD( CURDATE() INTERVAL 7 DAY )