BI Web 应用程序的存储过程和/或 ORM

发布于 2024-10-20 10:12:34 字数 659 浏览 4 评论 0原文

我正在 php 5 中构建一个商业智能 Web 应用程序,该应用程序显示从高度规范化的数据仓库(mysql 中的 60 多个表)检索到的信息。

我们使用 MODx 作为 CMF 来组织代码。到目前为止,代码主要是 procedura,每个页面本质上都是由直接在 php 代码中的一堆 sql 查询(如 MODx 术语中的片段)和以表格和图形方式显示信息的代码组成。

我们正在为主要组件创建对象,并将 sql 查询放在那里并使用 PDO。当查询映射到域的真实对象时,这很容易做到。

对于更多 BI(使用子查询聚合、连接 5 个以上表)或面向搜索的查询,我发现更难以了解如何替换动态创建的 sql。例如,我们在网络应用程序中有一个包含很多条件的搜索功能。根据选择的条件,PHP 代码添加或删除要连接的表、子查询并更改“where”子句。

您认为 ORM 或存储过程可以提高该上下文中代码的性能/质量吗? 我们的模型(60 多个高度规范化的表)是否太复杂而无法从 Web 应用程序直接访问,并且一种数据集市(基本上是非规范化的数据视图)会比 ORM 带来更多好处?

这个问题与以下内容相关: stored-procedures-or-or-mappers

I am building a business intelligence web app in php 5 that display informations retrieved from a datawarehouse highly normalized (60+ tables in mysql).

We use MODx as our CMF to organize the code. So far the code is mainly procedura, each page is essentially composed of a bunch of sql query directly in the php code (Snippet as in the MODx terminology) and code to display the info in tables and graphically.

We are in the process of creating objects for our main components and put the sql queries there and use PDO. It is easy to do when the query map to a real object of the domain.

For more BI (aggregation with subqueries, join on 5+ tables) or search oriented query, I find it more difficult to see how to replace the dynamically created sql. For example, we have a search functionality in the web app with a lot of criteria. Depending on which criteria are selected, the php code add or remove tables to join, subqueries and change the 'where' clause.

Do you think an ORM or Stored Proc could improve performance/quality of code in that context ?
Is our model (60+ tables highly normalized) too complicated to be directly accessed from the web app and a kind of datamart (basically denormalized view of the data) would bring more benefits than ORM ?

This question is related to : stored-procedures-or-or-mappers

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱桃奶球 2024-10-27 10:12:34

瓶颈肯定是标准化水平 - 如果您可以选择,采用星型模式风格的 DWH 将大大提高性能,因为它预先准备好数据以供 BI 应用程序使用。

The bottleneck would surely be the level of normalization - if the option is available to you, adopting a more star-schema style DWH would greatly increase performance as it pre-prepares the data for consumption by your BI app.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文