14:36

Я котика передамажил. Может дело в тебе?
Привет народ.
Может кто на пальцах объяснить что такое ORM?
Изучаю работу с БД и говорят про ORM (конкретно Pewee)
И так каша в голове а тут ещё влезают с этим. Хотелось бы понять с чем его едят.

@темы: Программирование

Комментарии
06.06.2022 в 16:22

この世界は。。。いいですか?
Допустим, есть некоторая реляционная база данных, скажем, телефонный справочник. И есть некоторая программа для работы с этой базой. Если она написана с использованием ООП, то в ней наверняка будут использоваться различные объекты. Скажем, объект Человек, у которого имеется один или несколько связанных объектов ТелефонныйНомер.

Так вот ORM - это штуковина, которая автоматически преобразует строки из таблицы в объекты в оперативной памяти и обратно, избавляя программиста от необходимости "руками" возиться с SQL-запросами. Программист тогда видит только объекты, которые (в некоторых реализациях) даже сами сохраняют изменения в базе.
Это повышает скорость разработки, избавляет от части ошибок. Обратная сторона медали - низкая эффективность. Сгенерированные ORMом SQL-запросы могут быть... чудовищными, как по сложности, так и по времени исполнения.
06.06.2022 в 16:25

Я ценю твоё мужество заваривать чай
Орм помогает вашей проге понять где и как заняться сущности в бд. Вот есть табличка в бд юзеров, в своей проге как то с ними взаимодействуете, чтобы руками не писать: сохрани это поле в эту таблицу в этот столбец, существует орм.
06.06.2022 в 16:32

Я котика передамажил. Может дело в тебе?
Т.е. ОРМ это для тех кто не хочет морочиться с с языком SQL?
06.06.2022 в 17:02

Я женщина творческая...хочу творю...хочу вытворяю
оффтоп.
какая занятная штукенция.
надо будет поизучать.

06.06.2022 в 17:21

この世界は。。。いいですか?
Тиберий Кровавый прилив, ну типа да, но морочиться всё равно придётся, потому что у каждого ОРМ свой синтаксис, а то и свой микро-язык.

Как по мне, так проще заморочиться с SQL. Во-первых, его надо разобрать один раз и он универсальный, а ОРМов много и у каждого свои тараканы. Во-вторых, сам все запросы пишешь и сам оптимизируешь их как тебе надо. Да и вообще, писать круды хоть и скучно, но совсем недолго.
06.06.2022 в 17:25

Я котика передамажил. Может дело в тебе?
nio, я тоже так решил тем более что уже несколько дней плотно SQLite изучаю по видео с практическими примерами.
06.06.2022 в 18:20

fire-dragon
Тиберий Кровавый прилив, это вы зря. Ровно сегодняшний пример. Приложение написано на Ef core используется code first. В пуристком подходе я делаю запрос через датаредер считаю поля привожу их к нужному значению в общем геморой.
но сегодня пришлось от этого отойти и использовать dapper чтобы смэпить рекурсивный запрос. В общем выбирайте инструменты и любите профайлер  
07.06.2022 в 20:10

Я котика передамажил. Может дело в тебе?
fire-dragon, да мне надо всего-лишь извлечь данные из функции и вставить в другом месте кода. Скуль я уже заню более-менее. А с ORM снова садись и изучай.