Tôi chắc chắn sẽ lưu trữ đăng ký của bạn một cách riêng biệt với thông tin thành viên của bạn. Điều này không chỉ cho phép bạn ghi lại đầy đủ tất cả các đăng ký mà còn hữu ích nếu bạn cần có các đăng ký có độ dài thay đổi. Cấu trúc bảng của bạn có thể giống như sau:
subscriptions
-------------
subscription_id integer
member_id integer
start_date date
end_date date
date_paid datetime
Sau đó, bạn có thể sử dụng SQL trực tiếp để tìm các đăng ký sắp hết hạn, v.v. Vì vậy, để tìm bất kỳ đăng ký nào sắp hết hạn trong vòng bảy ngày tới, bạn có thể có một cái gì đó như
SELECT
member_id,
MAX(end_date) as expires_date
FROM
subscriptions
GROUP BY
member_id
HAVING
expires_date < DATE_ADD( CURDATE() INTERVAL 7 DAY )