这不是一个编程问题,因为我没有编写代码的问题,而是一个数据库设计问题。我需要创建一个跟踪销售目标与实际销售额的应用程序。问题是,一个人的目标可以改变(让我们每天最多说)。
此外,位置可以包含多个具有不同目标的代理,这些代理需要一起添加到该位置。
我已经考虑过基本上运行一个定时任务来将每个座席的每日目标保存到一个字段中。多年来似乎会有很多数据,但它可以让我简单地查询日期范围并添加所有每日目标以获得该日期范围的目标。
否则,我想我可以简单地编写更改(即3月2日 - 15周销售/周,4月12日,每周16次销售),这将减少数据,但更多的编程工作,以根据时间查询找出目标
我假设这可能是最好的做法 - 任何人?
答案 0 :(得分:0)
为您的目标设置日期范围。范围的开始是您设定目标的时间。范围的结束从最大整理日期开始(通常为9999-12-31,具体取决于您的数据库)。
将此视为“直到永远”或“直至另行通知”。
当您想知道特定日期的目标有效时,您的WHERE
子句中会有类似的内容:
...
WHERE effective_date <= @AsOfDate
AND expiry_date > @AsOfDate
...
当您更改目标时,您需要两个操作,首先更新现有记录(如果存在)并将expiry_date
设置为新的截止日期。然后,您插入一条新记录,其中包含新的截至日期effective_date
和永久expiry_date
(例如'9999-12-31')
这给您带来以下好处: