首页 > 解决方案 > 自动生成发票的数据库和代码方法

问题描述

假设我管理一个域名网站,我在该网站上销售域名及其托管服务。

我的每个客户都会有费用:

域名: 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 个月,则不会生成该月的经常性发票。

这就是为什么我仍然对这种方法持怀疑态度。

我可以做些什么来优化这个过程?

标签: sqldatabasedatabase-designrelational-database

解决方案


推荐阅读