PHPおよびMySQL主導のWebサイトで単純なサブスクリプションベースのアカウント管理を作成したいと思います。特定の種類のユーザーアカウントとサブスクリプションの長さを追跡する必要があります。ユーザーが「サブスクリプションパッケージ」(ブロンズ、シルバー、ゴールド)と、サブスクリプションを継続する期間(1週間、1か月、1年)を選択できるようにしたいと思います。
ただし、評価の高いサブスクリプション(ゴールド>シルバー>ブロンズ)は、評価の低いサブスクリプションよりも優先する必要があります。つまり、ユーザーがシルバーとゴールドの両方のサブスクリプションを持っている必要がある場合は、ゴールドサブスクリプションの期間を最初に使用する必要があり、シルバーサブスクリプションを使用する必要があるのは、それがなくなったときだけです。
サブスクリプションを内部に保存するために、次のテーブルを作成しました。
INT id
INT user_id
INT type
DATETIME start
DATETIME end
私の質問は、ユーザーアカウントが特定の時点で有効なサブスクリプションを持っているかどうか、およびそのサブスクリプションがどのタイプであるかを確認するにはどうすればよいですか?最も重要なのは、サブスクリプションがすでに1つ実行されているときに、サブスクリプションを動的に追加する方法に興味があることです。
より正確な例:
- ユーザーは1日目に5日間のブロンズを購入します->サブスクリプション「ブロンズ」は1日目から5日目まで実行されます。
- 2日目に、ユーザーは「シルバー」を追加で購入することを決定し、さらに5日間購入します。
- 現在の状況:ブロンズ(1日目)、シルバー(2〜6日目)、ブロンズ(7〜10日目)
できれば、MySQLクエリ内でほとんどの作業を実行したいのですが、それが可能かどうかはわかりません。他のすべてが失敗した場合、私はPHPに頼らなければならないでしょう。
御時間ありがとうございます!