@driverx18

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

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

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

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

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

Войти через TM ID
Похожие вопросы
Хантфлоу Москва
от 80 000 до 90 000 руб.
Digital Sharks Казань
от 60 000 до 65 000 руб.
Рекадро Нижний Новгород
от 150 000 руб.