【发布时间】:2020-05-04 21:50:53
【问题描述】:
我正在努力开发一个使用 Oracle 作为数据库后端的应用程序。应用程序将从数据库中的各种表计算几个统计数据。前端很可能是一个 Web 应用程序,这个前端将显示各种图表和计算出的统计数据。现在,我想在数据库中而不是在服务层中执行计算会更有效,因为需要为每个 Web 请求执行所述计算。既然如此,我不确定使用哪种机制。 (例如存储过程、函数、视图)为了说明我的目标,假设我想保留许多学生的学生成绩统计数据。我想要一个网络界面,让我可以逐个学生查看这些统计数据,也可以查看所有数据。一些统计数据取决于所有学生成绩的汇总(例如平均值、最小值、最大值),而一些统计数据仅取决于单个学生。在这种情况下,每次添加或更新记录时,都必须重新计算聚合。所以我推测,如果我有一个特殊的表来保存我需要的所有计算值和一个触发器来在添加/更新记录时重新计算所有内容,那么我需要从 Web 请求点做所有事情-view 是让服务层从这个特殊的表中提取所需的值。我只是不确定这是否是最好的方法,所以我向社区征求任何意见/建议。注意:虽然我使用的是 Oracle,但我对使用 PostgreSQL 或 mySQL 持开放态度。
提前致谢
【问题讨论】:
标签: oracle stored-procedures web-applications view stored-functions