彼らがプレミアムメンバーシップの支払いをしている場合、私は別のテーブルを作成し、それを支払いのトランザクションIDに関連付けます。これは、1つのユーザー行から多くのpremium_access行になります。これにより、サービスの日数/月数に使用された支払いの履歴を記録し、6か月または年間のメンバーシップの割引を請求できるようになり、抜け穴やエクスプロイトを確実に追跡できるように正確に追跡できます。
次に、それらがいつ期限切れになるかを知りたい場合は、
select * frompremium_access where user_id ='$ id' limit 1 order by end_date desc
編集:これは可能なテーブル構造の簡単なモックアップです。必要な列と適切な命名規則については、独自の判断を使用してください。
CREATE TABLE IF NOT EXISTS premium_access (
id INT NOT NULL AUTO_INCREMENT ,
user_id INT NOT NULL , --fk to USERS
payment_id VARCHAR(45) NULL , --fk to PAYMENTS/INVOICES
start_date TIMESTAMP NOT NULL ,
end_date TIMESTAMP NOT NULL ,
PRIMARY KEY (id) )