【发布时间】:2011-03-04 10:18:27
【问题描述】:
我正在用 php 5 构建一个商业智能网络应用程序,它显示从高度规范化的数据仓库检索到的信息(mysql 中有 60 多个表)。
我们使用 MODx 作为 CMF 来组织代码。到目前为止代码主要是procedura,每个页面本质上是由一堆直接在php代码中的sql查询(MODx术语中的Snippet)和以表格和图形方式显示信息的代码组成的。
我们正在为我们的主要组件创建对象并将 sql 查询放在那里并使用 PDO。当查询映射到域的真实对象时,这很容易做到。
对于更多的 BI(与子查询聚合,加入 5 个以上的表)或面向搜索的查询,我发现如何替换动态创建的 sql 更加困难。例如,我们在 Web 应用程序中有一个搜索功能,其中包含很多条件。根据选择的条件,php 代码添加或删除要加入的表、子查询和更改“where”子句。
您认为 ORM 或存储过程可以在这种情况下提高代码的性能/质量吗? 我们的模型(60 多个高度规范化的表)是否过于复杂而无法从 Web 应用程序直接访问,而一种数据集市(基本上是数据的非规范化视图)会比 ORM 带来更多好处?
【问题讨论】:
标签: stored-procedures orm business-intelligence