与大多数人一样,我致力于数据驱动的面向对象的业务应用程序。我使用关系数据库来存储我的数据。
到目前为止,我已经设计了我的应用程序,我从不存储计算值。也就是说,如果用户想查阅他去年运行的“模拟”的输出,我的应用程序将简单地从现有历史数据重新计算报告,而不是读取模拟结果。由于报告只需要很少的时间来创建 - 这大部分都是简单的算术 - 我可以安全地假设我可以在不存储报告结果的情况下完成工作吗?我很难搞清楚未来的业务需求,这让我很遗憾没有把结果存储起来。
答案 0 :(得分:2)
税务变更,适用于所有数据的任何其他法规。
你可以通过使用当时的值来绕过它,但当它涉及任何计算时,复杂性开始增加。
答案 1 :(得分:2)
不存储计算结果会减少冗余,在我看来,这通常是一件好事 - 但它归结为操作所需的规范化与计算能力的情况。通常情况下,数据库不会100%标准化,因为我们不会生活在理想的世界中(理想的无限CPU功率和I / O速度),因此它应该根据具体情况确定基础。
如果您无法预见是否需要在DB中存储计算结果,我建议您不要存储它。数据库通常更容易维护,标准化程度越高。
答案 2 :(得分:1)
如果您拥有所有数据,并且可以根据该数据计算模拟,那么您应该没问题。如果将来您发现这些模拟运行时间太长,那么您可以开始存储计算值并简单地更改应用程序以从中提取历史值。