Различия между ORM / DAO / DataMapper / ActiveRecord / TableGateway?

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

ORM DAO DataMapper ActiveRecord TableGateway

Будут оценены любые примеры.

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

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

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

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

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

    DataMapper

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

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

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

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

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