假设我管理一个域名网站,在那里我销售域名及其托管服务。
我的每个客户都需要付费:
域名: example.com
费用:100.00美元
持续时间: 1年
我想在我的程序中执行的操作是在域名即将过期时自动生成发票。
我已经有了以下方法:
定期发票表:
Recurring_Invoices
InvoiceID[ID]
domain_name[VARCHAR]
Price[Double]
Last_Invoice_Date[DATETIME]
Is_Recurring[BYTE]
Next_Invoice_Date[DATETIME]
我在代码级别的方法如下:
每次我的程序启动时,我都会检查是否有当月生成的发票。在伪代码中我会这样做:
void getRecurringInvoices()
{
//Select the invoices WHERE Is_Recurring = 1
}
foreach (Invoice i in RecurringInvoices)
{
// Get the month of Next_Invoice_Date
if(Month of Next_Invoice_Date == DateTime.Now.Month)
{
//this is an invoice that needs to be generated + Next Invoice Date needs
to be prolonged with 1 year
}
我想问这个方法是否合适。我唯一担心的是,如果我的程序没有运行1个月,那么将不会生成该月的重复发票。
这就是为什么我仍然怀疑这种方法。
如何优化此流程?