【问题标题】:MVC + ORM, generating reportsMVC + ORM,生成报告
【发布时间】:2010-10-20 07:02:17
【问题描述】:

我刚开始使用 Zend Framework 和 Doctrine 作为它的 ORM,我对模型有些疑问。很明显,ORM 的目的只是将我的域模型映射到数据库模型,但我很好奇您如何为 Web 应用程序所需的各种报表建模?

从我的角度来看,如果我错了,请纠正我,我应该避免在控制器中编写任何查询(在这种情况下是 Doctrine Query Language 查询)。那么,如果我想要一些任意的报告(例如,每个部门的收入,按月划分),我应该在域中有一个特殊的报告“服务”吗?该服务将使用 ORM 查询从数据库中获取我的报告。

如果您能对这个话题有所了解,我将不胜感激。

【问题讨论】:

    标签: model-view-controller zend-framework orm doctrine


    【解决方案1】:

    当然,有时 DQL 是不够的。在 Doctrine2 中,您可以扩展它。但是 Doctrine 1.x 并不愚蠢,你可以使用原生 SQL:http://www.doctrine-project.org/projects/orm/1.2/docs/manual/native-sql/en

    如果ORM不够用,可以使用原生SQL。报告是 SQL 查询对于您可以想象的任何简单 QL 变得过于复杂的情况。所以......我说如果你不能避免它,那就去本地查询。但其他一切都保留 Doctrine。

    【讨论】:

    • 谢谢。但是模型应该如何制作呢?我应该有服务吗,例如ReportGenerator,使用方法 getRevenueByDepartment()?这方面的最佳做法是什么?
    • 我不知道你的应用结构。拥有“报告”模型对问题的解释过于宽泛。在我工作的领域,每个报告都太独特了,无法将其封装到某个模型中,所以我只是将它们作为不同的实体。我没有理由他们应该有共同点或实际上是“模型”。此外,报告是某种“只读”模型。他们是你的榜样吗?
    猜你喜欢
    • 2011-03-02
    • 1970-01-01
    • 2023-03-21
    • 2011-04-21
    • 1970-01-01
    • 2013-07-23
    • 2011-11-22
    • 1970-01-01
    相关资源
    最近更新 更多