ORM / DAO / DataMapper / ActiveRecord / TableGateway различия? - PullRequest
13 голосов
/ 08 июля 2010

Не могли бы вы, пожалуйста, объяснить мне различия между следующими представителями базы данных, скажем, на PHP.

1 Ответ

17 голосов
/ 08 июля 2010

Это потребует довольно длинного ответа. Вместо того, чтобы повторять то, что другие говорили лучше и более подробно до меня, я связываю вас с некоторыми соответствующими страницами. Я предлагаю просмотреть их. Может быть, перейдите по нескольким дополнительным ссылкам. Википедия - это всегда хорошее начало. Если после просмотра ссылок у вас все еще есть вопросы по поводу того или иного шаблона, не стесняйтесь возвращаться в SO и спрашивать снова. Но если вы это сделаете, попробуйте сузить его. Лучше задать несколько вопросов и сосредоточиться на определенных аспектах, чем ожидать, что люди напишут эссе для вас.

Объектно-реляционный картограф

Объектно-реляционное отображение (ORM, O / RM и O / R mapping) в компьютерном программном обеспечении - это метод программирования для преобразования данных между системами несовместимого типа в реляционных базах данных и объектно-ориентированных языках программирования.

Объект доступа к данным

Использование объекта доступа к данным (DAO) для абстрагирования и инкапсуляции всего доступа к источнику данных. DAO управляет соединением с источником данных для получения и хранения данных.

DataMapper

Слой Mappers (473), который перемещает данные между объектами и базой данных, сохраняя их независимыми друг от друга и от самого преобразователя.

Активная запись

Объект, который упаковывает строку в таблицу или представление базы данных, инкапсулирует доступ к базе данных и добавляет логику домена к этим данным.

Шлюз табличных данных

Объект, который действует как шлюз (466) для таблицы базы данных. Один экземпляр обрабатывает все строки в таблице.

...