@driverx18

В чем отличие DBAL от ORM?

Я всегда говорю, что я юзаю ORM, когда использую запросы вида:
$this->select()->join()->where()->andWhere()
Однако, как я почитал на ресурсах, это больше смахивает на DBAL. Как я понимаю, что DBAL - это то, что не нужно переживать какой СУБД вы пользуетесь, вы должны построить запрос вида какой я написал выше, где-то в конфигах указать свою СУБД, и оно само сможет написать корректный запрос за вас. Также, как я понимаю, при юзаже DBAL, возвращаются не объекты, а массивы, например, а при юзаже ORM - всегда объекты.
Собственно хотелось бы понять, я прав, или нет?) Какие коренные отличия между DBAL и ORM?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
muzikant777
@muzikant777
PHP/Vue разработчик
Некорректно сравнивать тёплое с мягким. Так и здесь: DBAL, как вы правильно написали - слой абстракции, представляющий единый интерфейс для работы с различными реализациями БД.
ORM - штука, которая позволяет работать с объектами и связями в БД как с сущностями, не заботясь о том, из каких именно таблиц и полей заполняется сущность.

У вышеупомянутой Doctrine тоже есть свой DBAL, но это не мешает ей быть ORM :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ivorobioff
Software Engineer
хороший пример ORM это Doctrine 2, что ты там делаешь это работаешь со сущностями (это такие объекты которые имеют определенное значение в бизнес логике) и практически забываешь о бд (за исключение случаев где нужно делать сложные запросы, но это другое не совсем фишка ORM ). Все изменения данных в бд сводится к изменению значений свойств сущностей.

Конечно, предварительно надо указать как те или иные сущности представлены в бд чтобы система смогла правильно смапить сущности с таблицами в бд.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Риверстарт Нижний Новгород
от 60 000 до 120 000 руб.
zClick.biz Москва
от 100 000 до 300 000 руб.
23 марта 2019, в 23:45
5000 руб./за проект
23 марта 2019, в 23:33
800 руб./за проект
23 марта 2019, в 21:08
1500 руб./за проект