数据访问层和数据库抽象层之间的区别以及重构数据库类

max*_*n15 4 php mysql oop database-abstraction data-access-layer

可能重复:
数据抽象层和数据访问层之间有什么区别?

我刚刚在nettuts上阅读了这篇文章.我有点困惑.数据访问层数据库抽象层之间有什么区别?

另外,我应该为此制作自己的自定义类,还是使用PDO更好?

我有一个DatabaseOps执行所有CRUD操作的类.其他类(例如User)继承自它,并使用此类中的方法来执行CRUD操作.我有另一个名为Databaseopen-connection,close connection,fetch array,确认查询等的类.我应该将它们写入单个类(数据访问/抽象层)吗?哪一个会更好?

dm0*_*514 7

数据访问层通常采用ORM的形式.这允许您将表映射到对象.它提供了高级抽象,因此您不必担心原始sql. http://en.wikipedia.org/wiki/Data_access_layer

数据抽象层创建一个api,使数据访问后端独立.无论您使用的是postgres,mysql,sqlite等,它都可以让您查询这些数据库,而无需担心具体细节. http://en.wikipedia.org/wiki/Database_abstraction_layer

如果您正在创建一个其他人可以使用的平台,并且他们可以选择他们的数据库后端,则需要一个抽象层,否则我不会担心它.

每当我对Web项目结构有疑问时,我总是会看一下流行的MVC框架,看看他们是如何处理这些问题的.CakePHP,CodeIgniter,Kohana都是如何创建可扩展面向对象框架的很好的例子.在涉及到这样的问题时,它们是不可或缺的资源.