【发布时间】:2010-12-15 19:11:54
【问题描述】:
我们正处于为我们的客户提供订阅服务的网络应用程序的规划阶段。订阅期各不相同,我们的客户可以无限期延长,但始终至少为一个月(30 天)。
当客户注册时,客户信息(帐单地址、电话号码等)存储在customers 表中,并在subscriptions 表中创建订阅:
id | start_date | end_date | customer_id
--------------------------------------------------------
1 | 2010-12-31 | 2011-01-31 | 1
每个月我们都会遍历subscriptions 表(最好是cronjob),并为过去的订阅期创建发票,这些发票保存在自己的表中 - invoices。根据客户的不同,发票是手动打印出来并通过邮件发送,或者只是通过电子邮件发送给客户。
由于我们客户和产品的性质,我们需要提供多种不同的付款方式,包括电汇和卡付款,因此某些发票可能需要手动处理并由我们的员工登记为已付款。
每个月的15号,循环遍历invoices表,如果实际发票没有标注付款,相应的订阅将被删除。如果已注册付款,subscriptions 表中的 end_date 将再增加 30 天(或现在我们的客户选择的时间段)。
我们是否正在通过向前和向后增加日期来处理非付费客户和延长订阅来解决问题?随着客户延长订阅期,添加新订阅会更好吗?
【问题讨论】:
标签: mysql logic subscription invoices