Каковы преимущества использования абстракции базы данных с помощью ORM?

Каковы преимущества использования абстракции базы данных с помощью ORM?
Каковы преимущества использования абстракции базы данных с помощью ORM? - steve_j @ Unsplash

Я начинаю использовать ORM, рекомендованный выбранным мной фреймворком, и хотя мне нравится идея дополнительного уровня абстракции, который обеспечивает ORM, я начинаю понимать, что это на самом деле означает. Это означает, что я больше не работаю с моей базой данных (mysql), и все специфические для mysql функции уходят в окно, как будто их не существует.

Идея ORM заключается в том, что он пытается помочь мне, делая все независимым от базы данных. Это звучит замечательно, но часто есть причина, по которой я выбираю определенную систему баз данных. Но, идя по пути агностики баз данных, ORM берет наименьший общий знаменатель, что означает, что в итоге я получаю наименьший набор функций (те, которые поддерживаются всеми базами данных).

Что если я знаю, что в долгосрочной перспективе я не буду менять базовую базу данных? Почему бы не получить доступ и к функциям, специфичным для базы данных?

Я смотрю на это так же

Любая абстракция, которая не позволяет вам залезть под нее, когда это необходимо, является злом, потому что она приводит к разного рода уродливым инверсиям абстракции в вашем коде.

На работе у нас есть собственный ORM, который работает довольно хорошо, но для тех случаев, когда нам нужно что-то, что его функции явно не предусматривают, есть метод, который принимает строку и вставляет ее прямо в генерируемый запрос, позволяя использовать сырой SQL, когда это необходимо.

IMO любой ORM, не имеющий этой функции, не стоит тех битов, из которых он скомпилирован.


LetsCodeIt, 19 мая 2023 г., 16:56

Похожие посты

Каковы аргументы против или за размещение прикладной логики на уровне базы данных?Надлежащий рабочий процесс разработки полнофункционального приложенияМоделирование синглтона в реляционной базе данных: подходы и ограниченияИзучите основные функции и элементы баз данных для программистов, создавайте сложные приложенияРабота с обфускацией данных международного характера: Преодоление вызовов и использование передовых практикИспользование событий orm или триггеров базы данныхПодход к хранению объектов POO с несколькими отношениями в реляционной базе данныхОтображение временных моделей на базу данных для системы бронирования фильмов с использованием Spring Framework и Spring Data JPAРеализация объектов значения и сущностей DDD без ORM в PHP: гайд для начинающихМодель базы данных сущности/идентификаторы при связях 1:M, M:N: Hibernate vs однозначное соответствие