я правильно понимаю, что
ORM - это обьекто реляционная модель(где класс - это таблица в БД, обьект класса - 1 запись в БД)
Active Record - это шаблон, по сути одно и тоже, только должны присутствовать методы для работы с этим классом(то есть таблицей)
То есть в том же ларавел модель User - это сочетание ORM + Active Record?
думаю что да, так-же как и в ларе. класс скорее всего может быть не только таблицей в бд. или может быть несколько таблиц связанных между собой
Верно, Eloquent это ORM, красивая и простая реализация Active Record. ORM (Object-Relational Mapping) - Тоесть объектно-реляционное преобразование, своего рода набор "приемов". Способ сопоставления объектов ООП с таблицами РСУБД AR (Active Record) - как ясно из описания "активная запись", это уже шаблон, смысл которого представлять запись таблицы. Т.Е. Каждый экземпляр AR объекта соответствует только одной записи таблице и зеркальные действия с этой записью в бд(создание, удаление, изменение) при работе с этим объектом. Если проще AR и есть ORM. Есть и другие паттерны реализующие ORM, например TDG (Table Data Row), DM (Data Mapper), UoW (Unit Of Work), в некоторых случаях ORM реализуется с использованием сразу нескольких шаблонов. Например DM и UoW. Где DM отвечает за сопоставление, а UoW за отслеживание изменений.
Аа, тогда это обьясняет почему они так схожи, если ОРМ это и есть АР
Спасибо большое за обьяснение
Можно же так сказать? Что ОРМ это и есть АR
Если грубо - ORM это способ. AR это шаблон. Тоесть способ взаимодействия реализуется шаблоном. Насколько говорить что ORM и есть AR - думаю не совсем корректно на прямую, учитывая, что реализации ORM как я описал выше так же могут быть реализованы и другими паттернами с альтернативным виденьем работы. Но в целом это скорее вопрос мировоззрения.
Немного сложновато, но ещё перепрочту вникну, спасибо
Обсуждают сегодня