Model view controller MVC&x2B;ORM,生成报告

Model view controller MVC&x2B;ORM,生成报告,model-view-controller,zend-framework,orm,doctrine,Model View Controller,Zend Framework,Orm,Doctrine,我刚刚开始使用Zend框架和条令作为它的ORM,我对这个模型有些怀疑。很明显,ORM的目的只是将我的域模型映射到数据库模型,但我很好奇如何对Web应用程序上所需的各种报告进行建模 从我的观点来看,如果我错了,请纠正我,我应该避免在控制器中编写任何查询(在本例中为条令查询语言查询)。因此,如果我想要一些任意的报告(例如,每个部门的收入,按月份划分),我应该在域中有一个特殊的报告“服务”吗?此服务将使用ORM查询从数据库获取我的报告 如果您能对这个话题有所了解,我将不胜感激。当然,有时候DQL是不够

我刚刚开始使用Zend框架和条令作为它的ORM,我对这个模型有些怀疑。很明显,ORM的目的只是将我的域模型映射到数据库模型,但我很好奇如何对Web应用程序上所需的各种报告进行建模

从我的观点来看,如果我错了,请纠正我,我应该避免在控制器中编写任何查询(在本例中为条令查询语言查询)。因此,如果我想要一些任意的报告(例如,每个部门的收入,按月份划分),我应该在域中有一个特殊的报告“服务”吗?此服务将使用ORM查询从数据库获取我的报告


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

当然,有时候DQL是不够的。在Doctrine2中,您可以扩展它。但Doctrine 1.x并不愚蠢,您可以使用本机SQL:


如果ORM不足,可以使用本机SQL。报告是指SQL查询对于任何可以镜像的简单QL都变得非常复杂的情况。所以如果你无法避免,我建议你使用本机查询。但要把条令留到其他事情上。

当然,有时DQL是不够的。在Doctrine2中,您可以扩展它。但Doctrine 1.x并不愚蠢,您可以使用本机SQL:


如果ORM不足,可以使用本机SQL。报告是指SQL查询对于任何可以镜像的简单QL都变得非常复杂的情况。所以如果你无法避免,我建议你使用本机查询。但其他一切都要保留原则。

谢谢。但是模型应该如何制作呢?我是否应该有一个方法为getRevenueByDepartment()的服务,例如ReportGenerator?这方面的最佳实践是什么?我不知道你的应用程序结构。拥有一个“报告”模型对这个问题的解释过于宽泛。在我工作的领域中,每个报告都太独特,无法将其封装到某个模型中,因此我将它们作为不同的实体。我没有理由认为他们应该有共同点,或者实际上是“模范”。此外,报告是某种“只读”模型。他们是你的模特吗?谢谢。但是模型应该如何制作呢?我是否应该有一个方法为getRevenueByDepartment()的服务,例如ReportGenerator?这方面的最佳实践是什么?我不知道你的应用程序结构。拥有一个“报告”模型对这个问题的解释过于宽泛。在我工作的领域中,每个报告都太独特,无法将其封装到某个模型中,因此我将它们作为不同的实体。我没有理由认为他们应该有共同点,或者实际上是“模范”。此外,报告是某种“只读”模型。他们是你的模特吗?