我应该把它做成模型吗?

| 我有一系列复杂的选择查询,需要从应用程序的不同部分进行调用。我认为我应该将它们全部分组到模型类中,但想对此进行验证。 所有查询均基于同一组5个表。这些表中的每一个都有其自己的Table Data Gateway类和Row Data Gateway类,但是我用于查询的新类将不会实现任何这种模式(因为它不包装表或行)。我的新班级将在已经建立的表和行数据网关上进行调用。 另外,不能将来自用户的值直接添加到查询中,因此我也计划在新类中进行一些预处理。此预处理包括访问数据库以查找值等。 这听起来公平吗?我认为这正是应该使用模型的方式,但是我在此类事情上可能会错得很厉害,因此请多多指教。 (仅供参考,我正在使用Zend Framework)。     
已邀请:
查询不在模型部分。它们与持久性相关(模型不处理持久性)。 这些复杂的查询应该在持久层中,在这里是表数据网关类。 我将表数据网关类命名为“ DAO”(数据访问对象)。 Table Data Gateway是一种DAO,因为您可以拥有一个DAO,该DAO可以帮助您从文件,Web服务... 因此,您可以保留实际的类,并添加DAO来管理这些复杂的查询。此DAO不能为您提供对特定数据库表的访问,但仍可以为您提供对数据源(由多个DB表组成)的访问。 编辑: 我建议您创建一个DAO
interface
(可能为空)。您的数据库表将实现此接口。您的新类也将实现此接口,但不扩展
Zend_Db_Table
。 简而言之,您正在重新定义/重命名持久层,从\“ Zend Db Table \”到\“ DAO \”(这使其更通用)。 Zend Db Table是一种DAO。     

要回复问题请先登录注册