powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / ORM vs голый SQL
25 сообщений из 110, страница 1 из 5
ORM vs голый SQL
    #37883709
Возможна данная тема уже обсуждалась.
Какие есть плюсы и минусы использования ORM на проекте?

На чем быстрее разрабатывать приложение?
Позволяет ли доступ к таблицам как к объектам ускорить процесс разработки?


Ведь получается еще одна прослойка, в которой могут быть баги. Хитрые запросы писать удобнее на голом sql.

Каково Ваше мнение?
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37883737
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37883824
ScareCrow http://symfony.com/symfony-explained-to-a-developer


Вот собственно на симфонию я и пытаюсь перейти.

Большую часть бизнес логики хочется реализовать с помощью внутренних средств СУБД.
FK, хранимые процедуры, на крайний случай тригера.

Насколько мирно это всё будет существовать с ORM?
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37883935
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORM как раз и предназначен для инкапсуляции бизнес логики, но не на уровне СУБД, а на уровне приложения.

Использовать хранимки не советую, только если очень прижмет.
Причина в том, что вам понадобится еще один разработчик для хранимок.
Если текущий специалист может это делать и сам, то найти такого в случае его ухода будет сложнее,
а значт все равно понадобится еще спец по БД.
Есть еще ряд минусов использования хранимок ....
- сложность тестирования бизнес логики
- понадобится решать, каким образом будет обеспечиватся контроль версий (svn/git)
- каким образом будет происходить развертывание хранимок на продакшн.
- как делать откат версий в случае неудачного развертывания. ...
- в конце концов, что делать если нужно перейти на SQL сервер другого вендера.
короче гемор.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884005
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рубистИспользовать хранимки не советую, только если очень прижмет.
Причина в том, что вам понадобится еще один разработчик для хранимок.
Если текущий специалист может это делать и сам, то найти такого в случае его ухода будет сложнее,
а значт все равно понадобится еще спец по БД.
Есть еще ряд минусов использования хранимок ....
- сложность тестирования бизнес логики
- понадобится решать, каким образом будет обеспечиватся контроль версий (svn/git)
- каким образом будет происходить развертывание хранимок на продакшн.
- как делать откат версий в случае неудачного развертывания. ...
- в конце концов, что делать если нужно перейти на SQL сервер другого вендера.
короче гемор.
Как то все натянуто за уши. Нужна скорость пишите хранимки. И все эти минусы из пальца высосаны.
И про ORM тоже самое, нужна скорость отказываемся и от него.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884013
рубистORM как раз и предназначен для инкапсуляции бизнес логики, но не на уровне СУБД, а на уровне приложения.

Использовать хранимки не советую, только если очень прижмет.
Причина в том, что вам понадобится еще один разработчик для хранимок.
Если текущий специалист может это делать и сам, то найти такого в случае его ухода будет сложнее,
а значт все равно понадобится еще спец по БД.
Есть еще ряд минусов использования хранимок ....
- сложность тестирования бизнес логики
- понадобится решать, каким образом будет обеспечиватся контроль версий (svn/git)
- каким образом будет происходить развертывание хранимок на продакшн.
- как делать откат версий в случае неудачного развертывания. ...
- в конце концов, что делать если нужно перейти на SQL сервер другого вендера.
короче гемор.

Спасибо, за развернутый ответ.

А по скорости разработки что может быть быстрее? ORM или php + голый sql?
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884033
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начинающий ORM-щикА по скорости разработки что может быть быстрее? ORM или php + голый sql?
Скорость разработки выше с ORM чем с простым sql, а производительность наоборот
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884155
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСкорость разработки выше с ORM чем с простым sql, а производительность наоборот
а потом имеем сотую реализацию getById()
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884158
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начинающий ORM-щикБольшую часть бизнес логики хочется реализовать с помощью внутренних средств СУБД.
FK, хранимые процедуры, на крайний случай тригера.Что за СУБД, если не секрет?
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884240
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SmeL_mdрубистИспользовать хранимки не советую, только если очень прижмет.
Причина в том, что вам понадобится еще один разработчик для хранимок.
Если текущий специалист может это делать и сам, то найти такого в случае его ухода будет сложнее,
а значт все равно понадобится еще спец по БД.
Есть еще ряд минусов использования хранимок ....
- сложность тестирования бизнес логики
- понадобится решать, каким образом будет обеспечиватся контроль версий (svn/git)
- каким образом будет происходить развертывание хранимок на продакшн.
- как делать откат версий в случае неудачного развертывания. ...
- в конце концов, что делать если нужно перейти на SQL сервер другого вендера.
короче гемор.
Как то все натянуто за уши. Нужна скорость пишите хранимки. И все эти минусы из пальца высосаны.
И про ORM тоже самое, нужна скорость отказываемся и от него.

"Нужна скорость пишите хранимки" - как-то натянуто за уши и высасано из пальца :) ....

Единственное где оправдано использование хранимок это отчеты или обработка древовидных структур данных,при условии, что этих хранимок не много или у вас есть кому ими заниматься.
В остальном, скорости обычно не хватает если выбрано неудачное алгоритмическое решение или само приложение написано не качественно.
Компенсировать недостатки приложение написанием хранимок это не выход.
Мне доводилось работать с системой у которой вся бизнес логика была на хранимках ....
больше сотни таблиц и еще больше хранимок. В конторе был целый отдел, который знаимался только хранимками (T-SQL). жесть.

ORM действительно снижает скорость приложения (увиличивается количество запросов и снижается их качество),
но это решаемо, в любом ORM есть возможность писать запросы на прямую и вызывать хранимки. Зато ORM дает много других приемуществ ....
валидация, кеширование, разделение прав доступа, миграции и т.п. короче много готовых вещей, которые не нужно изобретать заново.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884252
рубист,

наверное спорный вопрос где лучше расположить бизнес логику в t-sql или в orm.
Просто вместо отдела t-sql был бы отдел php программистов :)
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884281
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начинающий ORM-щикрубист,

наверное спорный вопрос где лучше расположить бизнес логику в t-sql или в orm.
Просто вместо отдела t-sql был бы отдел php программистов :)

Отдел программистов тоже был, как ни странно :),
но ты прав вопрос не просто и зависит от многих факторов.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884311
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рубист"Нужна скорость пишите хранимки" - как-то натянуто за уши и высасано из пальца :) ....
Аргументы.

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

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

Мне доводилось работать с системой у которой вся бизнес логика была на хранимках ....
больше сотни таблиц и еще больше хранимок. В конторе был целый отдел, который знаимался только хранимками (T-SQL). жесть.

И что тут плохого :) вы тут про безопасность поразмышляйте про целосность

ORM действительно снижает скорость приложения (увиличивается количество запросов и снижается их качество),
но это решаемо, в любом ORM есть возможность писать запросы на прямую и вызывать хранимки. Зато ORM дает много других приемуществ ....
Вот тут согласен на 100%

валидация, кеширование, разделение прав доступа, миграции и т.п. короче много готовых вещей, которые не нужно изобретать заново.
Кэширование :) разделение прав уж точно дела не ORM а СУБД.
Про миграцию через ORM DBA вам бы точно руки по отрывал:)
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884341
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПро миграцию через ORM DBA вам бы точно руки по отрывал:)
очень интересно послушать как сделать миграцию без запуска скриптов.
делать хранимку, выполнять её и тут же грохать?
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884361
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SmeL_md,

При чем здесь количество хранимок, при чем здесь штат
При том, что львиная доля расходов на проект это этап "эксплуатации\сопровождения"
Если бы 1С-шники зарулили логику в хранимки, то давно бы обонкротились.

или потому что не пользуетесь хранимками т.к. нет специалиста по БД, а так как его нет вот и не справляются запросы после того как системой годик второй .....
Я написал уже, хранимками нужно пользоватся только по делу, если действительно нет другого решения.
Но лучше старатся их избегать. Это мое ИМХО, сложившееся годами. Ни кому не навязываю.

И что тут плохого :) вы тут про безопасность поразмышляйте про целосность
Безопасность и целостность ни как не зависят от использования или не использования хранимок.
Это зависит только от прямоты рук.

Кэширование :) разделение прав уж точно дела не ORM а СУБД.
Про миграцию через ORM DBA вам бы точно руки по отрывал:)
Да, СУБД кеширует запросы, но на уровне ORM тоже есть возможность кеширования.
Разделение прав это дело приложения и ORM очень в этом помогает.
Здесь я имею ввиду не права доступа в саму СУБД, а права доступа пользователей на уровне приложения.
имхо: СУБД, по бальшому счету, должна отвечать только за получение\хранение\отдачу данных.

Мне вот интересно, как вы собираетесь обходить те минусы о которых я писал выше, при создании бизнес логики на основе хранимок?
Я их специально упомянул, так как по ним почти нет готовых решений. Наколенные велосипеды не предлагать :)
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884376
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторПро миграцию через ORM DBA вам бы точно руки по отрывал:)
очень интересно послушать как сделать миграцию без запуска скриптов.
делать хранимку, выполнять её и тут же грохать?
Уточню что я имел ввиду.
Предположим у нас вот такая ситуация простейшая ситуация поле int4 нужно сделать int8. ORM с такой задачей думаю справится и напишет там какой то ALTER TABLE. Выполнение даже такого простого запроса в версионных СУБД просто заблокирует таблицу (для некоторого бизнеса может и не быть проблемой). После таких операций таблица с индексами могут разбухнуть в двое да и выполняться может не только доли секунд а часы.
На мой взгляд это должен быть пакет sql запросов выполненный через консоль, а не через какой то там ORМ и выполнен человеком который понимает, как данные запросы отрабатывает СУБД

Но выполнение миграции в одной хранимке (транзакции) вариант надежный т.к. любая проблема (exception) откатит все что выполнялось внутри.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884391
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что тут плохого :) вы тут про безопасность поразмышляйте про целосность
Безопасность и целостность ни как не зависят от использования или не использования хранимок.
Это зависит только от прямоты рук.

Не согласен что будет с вашей базой, если просто зайти на нее с консоли.
Завтра продолжим... ;)
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884401
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВыполнение даже такого простого запроса в версионных СУБД просто заблокирует таблицу
авторНа мой взгляд это должен быть пакет sql запросов выполненный через консоль
уровень дискуссии ниже плинтуса.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884406
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мое имхо. ORM нужен, ибо в прикладном коде вместо getById(продолжить по вкусу экранированием параметров, sql инъекциями etc ) руками писать запрос просто глупо, надоедает после второго раза, и все, всё равно пишут что-то свое.
ORM нужен готовый потому что свой велосипед обычно с квадратными колесами, глючит, не покрыт тестами и хорошо документирован только на языке php.
Меру использования ORM каждый выбирает сам для себя.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884486
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОРМ не нужен нафиг. Придуман для ламеров, чтобы подсадить на иглу.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37884524
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторприкладном коде вместо getById(продолжить по вкусу экранированием параметров, sql инъекциями etc ) руками писать запрос
???
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37885001
Кто нибудь считает спорным утверждение, что с помощью ORM приложение разрабатывается быстрее?


Я склоняюсь к следующему подходу:
1) Редактирование простых сущностей в базе осуществлять через ORM
2) Тяжелые запросы, хитрые джойны и апдейты осуществлять прямыми запросами к базе или хранимками.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37885014
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще вьюхи есть, да. и триггеры.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37885103
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начинающий ORM-щикКто нибудь считает спорным утверждение, что с помощью ORM приложение разрабатывается быстрее?...
Угу. Имеются такие.
А особенно, если учесть, что над вашей базой не только пхп разрабатывается, а ещё и всякие делфи, сишарпы и т.д. и т.п. . Короче, ясно.
...
Рейтинг: 0 / 0
ORM vs голый SQL
    #37885345
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeНачинающий ORM-щикКто нибудь считает спорным утверждение, что с помощью ORM приложение разрабатывается быстрее?...
Угу. Имеются такие.
А особенно, если учесть, что над вашей базой не только пхп разрабатывается, а ещё и всякие делфи, сишарпы и т.д. и т.п. . Короче, ясно.
По моем автор вообще php не упамянал.
При чем тут всякие делфи и сишарпы?, речь об использовании ORM в принципе.

Походу вы нормальный ORM в глаза не видели и не работали с ним в реальном проекте.
.... типа "не читал, но осуждаю" :)
...
Рейтинг: 0 / 0
25 сообщений из 110, страница 1 из 5
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / ORM vs голый SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]