ORM / DAO / DataMapper / ActiveRecord / TableGateway的区别?

时间:2010-07-07 20:10:08

标签: php database orm activerecord dao

请您解释一下以下数据库代表之间的区别,比如说,PHP。:

ORM DAO 的DataMapper ActiveRecord的 TableGateway

任何例子都会受到赞赏。

1 个答案:

答案 0 :(得分:17)

这需要一个很长的答案。我没有在我之前更好地重复别人的更好和更详细的说法,而是将您链接到一些相关页面。我建议仔细研究一下。也许按照一些额外的链接。维基百科始终是一个良好的开端。如果您在浏览链接后仍然对其中一种或另一种模式有任何疑问,请随时回复并再次询问。但如果你这样做,试着缩小范围。最好是提出多个问题并关注特定方面,而不是期望人们为你写一篇文章。

<强> Object Relational Mapper

  

计算机软件中的对象关系映射(ORM,O / RM和O / R映射)是一种用于在关系数据库和面向对象编程语言中的不兼容类型系统之间转换数据的编程技术。

<强> Data Access Object

  

使用数据访问对象(DAO)来抽象和封装对数据源的所有访问。 DAO管理与数据源的连接以获取和存储数据。

<强> DataMapper

  

Mappers(473)的一层,它在对象和数据库之间移动数据,同时保持它们彼此独立以及映射器本身。

<强> Active Record

  

在数据库表或视图中包装行的对象,封装数据库访问,并在该数据上添加域逻辑。

<强> Table Data Gateway

  

充当数据库表的网关(466)的对象。一个实例处理表中的所有行。