我目前在我的应用程序中实现了一些汇总从数据库中获取的大量信息的“报告”:表中的每个单元格都来自另一个表格的总数,每个单元格来自于另一个表格的总数等。
报告应该始终向用户显示最新的数据:每个数据在软件中的任何位置更改并且报告必须是最新的。数据库是否触发了使用此业务逻辑的方式
我最终生成了太多的SQL。
我试图缓存(在数据库中)中间结果和表,它的工作原理。但是,在应用程序中可以更改数据的任何地方,我必须重新计算在太多地方调用以recomputeCache()
调用结束的缓存(请记住,这是为了保持绝对最新的报告)。
DBMS的触发器可以工作:对表计算下一个,它拥有一个触发计算下一触发等01 但我怕的触发器:
- 什么复杂性?进行计算的代码非常庞大且“聪明”:200行.NET语言加糖将变成500个PL/SQL。
- 可维护性如何? PL/SQL是不是很难找到,阅读,理解,修改,调试等?
- 业务逻辑封装怎么样?这个计算不应该属于业务逻辑层吗?
我正在听任何意见,帮助我“典型”软件缓存之间进行选择(我会尽力找到一个智能高速缓存重新计算战略),并触发基于表重新计算(也许牺牲了软件的最佳实践和可维护性?)...
谢谢!
你可以在自动更新中使用物化视图吗? –