2012-01-31 63 views
1

我想在MVC模式中编写一个Web应用程序,我想知道是否有一个类与所有数据库调用将被应用程序使用的良好实践在这个班上。PDO数据库访问的PHP编程设计模式

那么只需在需要时创建此类的实例?

或者将数据库调用混合到需要访问数据库的任何特定类(模型或控制器)中是否更好?

回答

1

嗯,这是一个很好的问题。这将是更多的个人意见,但我通常做的是创建一个单一的数据库对象来处理所有数据库调用,然后我创建不同的数据库对象,我需要什么。例如,我会创建一个UserDB对象,并将这些数据库调用放在它对用户唯一的位置。如果你有用户组,你也可以创建一个UserGroupDB对象并使用它来调用你需要的所有数据库查询。这允许您的代码易于阅读,并且可以在系统的多个部分中使用,同时只将DB逻辑保存在单个位置。你不想用你所有的数据库查询创建一个数据库对象,因为这是显而易见的开销,因为系统中的所有页面都不需要大多数查询。

我希望这会有所帮助。

1

通常情况下,数据访问由模型处理,但有些情况下模型与数据访问层不同义。

为了更简洁的代码,创建一个抽象类可能会更明智一些,它将为您拥有的每个模型处理数据访问层和具体类。

0

在我的实践中,数据访问对象DAO只是在SQL中有所不同。因此,使用一个DB对象封装查询,包括选择和修改(更新,插入和删除),然后不同的表或模块具有不同的DAO来构建其特定的SQL并使用DB对象执行查询。