Със сигурност бих съхранявал вашите абонаменти отделно от информацията за членовете ви. Това не само ще ви позволи пълен запис на всички абонаменти, но също така ще помогне, ако трябва да имате абонаменти с променлива дължина. Структурата на вашите таблици може да бъде нещо подобно:
subscriptions
-------------
subscription_id integer
member_id integer
start_date date
end_date date
date_paid datetime
След това можете да използвате SQL директно, за да намерите абонаменти, които предстои да изтекат и т.н. Така че, за да намерите абонаменти, които трябва да изтекат в рамките на следващите седем дни, може да имате нещо като
SELECT
member_id,
MAX(end_date) as expires_date
FROM
subscriptions
GROUP BY
member_id
HAVING
expires_date < DATE_ADD( CURDATE() INTERVAL 7 DAY )