データベースには、ユーザーを特定の月にコースにサブスクライブするサブスクリプション モデルがあります。課題の種類が少ない。ユーザーは次のことができます。
- コース×月額プランをクレジットカードで購入
- アクティベーションキーを入力してコース x 月のサブスクリプションを購入する
- システム管理者は、ユーザーを x か月のサブスクリプションに割り当てます。
ユーザーがサブスクリプションを更新する場合、古いレコードは削除しません。サブスクリプション テーブルに新しいレコードを作成し、古いレコードを履歴として保持します。同じサブスクリプションが管理者によって更新された場合も、新しいレコードを作成します。また。ユーザーの現在のサブスクリプションは、最後のレコードによって識別されます。ユーザーが受講する有効期限は、最新の記録に表示されている日付です。たとえば、添付のスクリーンショットを確認すると。
ユーザー 1 には 3 つのサブスクリプションがあり、そのうちの 1 つはコースが 6 月 15 日に期限切れになる必要があると言っていますが、これがこのユーザーとコースの組み合わせの最新の記録であるため、実際の有効期限は 6 月 14 日です。
これらすべての記録を (既存のユーザー コースの有効期限を更新するだけでなく) 保持する理由は、この履歴が必要だからです。何か問題が発生した場合、いつでも間違いがあった場所を回復できます。
あなたは私の考えを持っていると思います.私の質問は、これが良い解決策であり、より良い実装のアイデアがどのように見えるかです.
御時間ありがとうございます。