6

私たちは、顧客にサブスクリプションを提供する Web アプリの計画段階にあります。サブスクリプション期間はさまざまで、お客様によって無期限に延長できますが、常に少なくとも 1 か月 (30 日) です。

顧客がサインアップすると、顧客情報 (請求先住所、電話番号など) がcustomersテーブルに格納され、サブスクリプションがテーブルに作成されsubscriptionsます。

id    |    start_date    |     end_date    | customer_id
--------------------------------------------------------
1     |    2010-12-31    |     2011-01-31  | 1

毎月subscriptionsテーブルをループし (できれば cronjob)、過去のサブスクリプション期間の請求書を作成します。これは独自のテーブルに格納されます - invoices. 顧客によっては、請求書を手動で印刷して郵送するか、単に電子メールで顧客に送信します。

お客様と製品の性質上、電信送金やカード支払いなど、さまざまな支払い方法を提供する必要があるため、一部の請求書は手動で処理し、スタッフが支払い済みとして登録する必要がある場合があります.

毎月 15 日にinvoicesテーブルがループされ、実際の請求書に対して支払いがマークされていない場合、それに応じたサブスクリプションが削除されます。支払いが登録されている場合end_datesubscriptions表の はさらに 30 日 (または顧客が選択した期間) 増加します。

無料の顧客を処理し、サブスクリプションを延長するために、日付を前後にインクリメントすることで頭痛の種を見ていますか? 顧客がサブスクリプションを延長する際に、新しいサブスクリプションを追加したほうがよいでしょうか?

4

4 に答える 4

5

私が取り組んだアプリケーションの1つにこの問題があり、ユーザーが持っているサブスクリプションを追跡することで問題を解決しましたが、有効期限は追跡しませんでした。次に、アカウントで請求される予定の日付を追跡しました。そのため、誰かがどのサブスクリプションを使用しているかを確認したい場合は、アカウントの最新のサブスクリプションレコードを取得できます。また、次回請求されるときは、確認するだけnext_bill_dateです。

このようにすることで、ユーザーのサブスクリプションを追跡し、ユーザーがいつアップグレード/ダウングレードしたかを確認できますが、請求コードはシンプルなままであり、重複について心配する必要はありません(サブスクリプションには処理する終了日がないため) 。

于 2010-12-24T16:26:36.563 に答える
5

サブスクリプション タイプが 1 つしかない限り、1 人の顧客に対して複数のサブスクリプション レコードを作成する必要はないと思います。請求期間が固定料金で常に毎月の場合は、サブスクリプションの end_date を変更するだけで十分です。あなたが知る必要があるのは、請求を停止できるように、彼のサブスクリプションがいつ切れるかだけです。そのため、彼がサブスクリプションを延長した場合、請求が翌月に再開されるように、1 つのレコードを更新するだけで済みます。

また、未払いのサブスクリプションを削除するのではなく、フラグを立てたほうがよいと思います。顧客が毎月の支払いを怠った場合は、サブスクリプションに未払いのフラグを立てて、今後の請求書 (およびサービス) を停止します。彼らが支払うとき/場合は、サブスクリプションのフラグを外して、サービス/翌月の請求が再開されるようにします.

于 2010-12-17T22:41:27.917 に答える
3

サブスクリプション テーブルを使用して、サブスクリプションのみを追跡します。これは、顧客がサブスクリプションを延長すると、新しいレコードが挿入されることを意味します。

さらに、新しいサブスクリプションの挿入時にトリガーを介して更新される subscription_end date 列を顧客テーブルに追加します。

これは非正規化ですが、このような方法を使用すると、Web アプリは参加なしでサービスへの顧客アクセスをチェックできます (db サーバーの負荷が軽減されます)。実際、サブスクリプションのテーブルをクエリする必要があるのはバッチだけです。

さらに、サブスクリプションの履歴を保持すると役立つ場合があります

  • お客様との紛争の場合
  • 企業のビジネス ロジックが変更された場合 (たとえば、忠実度に基づいて最良の顧客に割引を提供する場合)
  • 将来の統計のために

ユーザー ベースとサブスクリプションの履歴が膨大になり、維持しなければならない場合は、便利な形式でエクスポートすることにより、定期的にバックアップすることを決定できます (私は常に xml を使用しますが、私が使用した企業の一部は csv を好みました)。

于 2010-12-24T13:50:02.263 に答える
2

1 人の顧客のサブスクリプション履歴を追跡するには、新しいサブスクリプションを追加する方がよいと思います。

また、1 月 30 日に注文したサブスクリプションが 3 月に期限切れになる理由を理解するという頭痛の種からも解放されます (2 月が最も短い月です...)。

于 2010-12-15T19:28:24.287 に答える