Форум → Программирование → Python → Django → Обсуждение ORM vs SQL
Обсуждение ORM vs SQL
Страницы: ← Предыдущая страница →
-
26 июня 2012 г. 19:27, спустя 30 минут 33 секунды
Мне кажется проблемы описываемые, всего-лишь идут от того, что сначала пишутся SQL, а потом загоняются в ORM. Это я даже не знаю с чем сравнить…
ОРМ даёт профиты, и в том числе по количеству строчек, когда изначально мыслится объектно. И только объектно, в парадигме ОРМ.
"Так у меня есть объект юзер. Вот его моделька. У меня есть биатлонист. Вот его моделька. У биатлониста есть лыжи. Вот моделька для лыж. Вот FK к биатлонисту."
И далее вся работа состоит в том, что "По данной форме сохрани мне объект лыжи. Отфильтруй мне биатлонистов с датой рождения в промежутке … и исключи тех, которые без лыж".
Если же пытаться мыслить селектами с джоинами, юнионами и кучами встроенных функций в БД, то конечно же ничего не получится.
Тот же запрос с биатлонистами. Сравнение надо начинать с макроуровня. С бизнес задачи. Какие объекты, какие процессы, какая будет обработка. В одной комнате сядет орм-щик, в другой sql-щик. У них получатся разные схемы БД - разные таблицы, с разными полями. Скорее всего в орм-ном варианте будет побольше денормализации. Но задачу решать они будут и будут так, что бизнес устроит. И строчек меньше, в итоге, на проект, будет скорее всего в ОРМ варианте - ну потому что простых выборок всегда в проекте подавляющее большинство, а в орм они как раз пишутся короче и бывает значительно.
На всякий случай ещё раз - это другая парадигма. Тут надо категорически переключать мышление. Как не надо говорить, что javascript херовый, потому что там нет классов. Или функциональные языки гавно, потому что они не ООП. В какой-то задаче строчек больше, в какой-то меньше. Проблемы появляются только в перехлёсте парадигм. -
26 июня 2012 г. 19:34, спустя 7 минут 9 секунд
dynamic object properties
покажи пример, че это такое? -
26 июня 2012 г. 20:37, спустя 1 час 2 минуты 39 секунд
Абырвалг, это рантайм объект который типизируется конкретной выборкой - фактически может быть ArrayObject с ARRAY_AS_PROPS. Описываешь сложную выборку sql-запросом, IDE определяет тип возвращаемого результата и автодополняет соответствующие проперти. Получается оптимизация выборки путем сложного запроса с какими-нибудь аггрегатными данными или типа того; и объектная модель, которая на самом деле динамическая как произвольно взятый массив строки результата запроса, но в то же время типизирована на момент разработки средой разработки. Очень круто. Что то такое, но я такого не видел в php.
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!