2010-12-15 10 views
6

私たちは、顧客にサブスクリプションを提供するWebアプリケーションの計画段階にあります。購読期間は様々で、お客様が無期限に延長することができますが、少なくとも1ヶ月(30日)は常に適用されます。請求論理およびサブスクリプションのアプリケーションロジックですか?

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

私たちは「毎月:顧客のサインアップ、顧客情報(請求先住所、電話番号など)がcustomersテーブルに格納され、サブスクリプションがsubscriptionsテーブルに作成され

subscriptionsテーブル(好ましくはcronjob)をループし、過去の購読期間の請求書を作成します。これは、独自のテーブルに格納されています(invoices)。顧客に応じて、請求書は手動でプリントアウトされ、郵送されるか、顧客に電子メールで送られます。

本来の性質上、電信送金やカード決済などのさまざまな支払い方法が用意されているため、手数料によっては手動で処理して当社のスタッフが支払う必要がある場合があります。

毎月15日、invoicesテーブルがループされ、実際の請求書に支払いが設定されていない場合は、そのサブスクリプションが削除されます。お支払いが登録されている場合、subscriptionsテーブルのend_dateは、さらに30日間(またはお客様の選択した期間)増分されます。

私たちは、未払いの顧客を扱い、契約を延長するために前後の日付を増やして頭痛を抱えていますか?顧客がサブスクリプションを延長する際に、新しいサブスクリプションを追加することをお勧めしますか?

答えて

5

私が取り組んだアプリケーションの1つに、この問題がありましたが、ユーザーのサブスクリプションを把握して解決しましたが、ではなく、有効期限を追跡しています。その後、アカウントで請求されるはずだった日付を追跡していました。そのため、誰かの登録内容を確認したい場合は、そのアカウントの最新の購読記録を検索するだけで、次回は料金が請求されますので、next_bill_dateを確認してください。

このようにすると、ユーザーの定期購入を追跡し、アップグレード/ダウングレードした日時を確認できますが、請求コードは単純なままで、重複は心配する必要はありません(購読の終了日がないため対処する)。

2

単一の顧客の購読履歴を追跡するために、新しい購読を追加する方が良いと言いたいと思います。

あなたはまた、1月30日に注文された購読が3月に期限切れになる理由を知ることに頭を悩ませます(ご存じのように、2月は最短の月です)。

+1

新規/古いサブスクリプションの重複に問題があるとは思わないのですか? – Industrial

5

単一の購読タイプしかない限り、単一の顧客に対して複数の購読記録を作成する必要はないと思います。請求期間が毎月固定価格で毎月行われている場合は、契約のend_dateを変更するだけで十分です。あなたが知る必要があるのは、彼の契約がなくなり、請求書発行をやめることだけです。だから、彼が契約を延長した場合、次の月に請求が再開されるように、ただ一つのレコードを更新する必要があります。

また、未払いのサブスクリプションを削除する代わりにフラグを立てることをお勧めします。顧客が毎月の支払いを見逃した場合は、購読を未払いとフラグを立てて、将来の請求書(およびサービス)が停止されるようにします。彼らが支払った場合、あなたはサービス/次の月の請求書が再開されるように購読を解除します。

3

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

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

これは非正規化ですが、そのようなメソッドを使用すると、Webアプリケーションは結合なしでサービスへの顧客のアクセスを確認できます(dbサーバーの負荷を軽減します)。 実際には、バッチだけがサブスクリプションのテーブルをクエリする必要があります。

また、サブスクリプションの履歴を維持することが有用である可能性

最高の顧客の割引を与えるために、例えば、企業のビジネス・ロジックの変化(の場合に基づいて
  • 顧客との紛争の場合
    • 彼らの忠実度)将来の統計ユーザーベースとサブスクリプションの歴史は、あなたがperiodicaに決めることができましたmantainするために巨大になるだろう

  • ため
  • 私はいつもxmlを使いますが、私は優先csvで働いていた企業の一部です)。

  • 関連する問題