|
|
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
Возможна данная тема уже обсуждалась. Какие есть плюсы и минусы использования ORM на проекте? На чем быстрее разрабатывать приложение? Позволяет ли доступ к таблицам как к объектам ускорить процесс разработки? Ведь получается еще одна прослойка, в которой могут быть баги. Хитрые запросы писать удобнее на голом sql. Каково Ваше мнение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 14:00:16 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
ScareCrow http://symfony.com/symfony-explained-to-a-developer Вот собственно на симфонию я и пытаюсь перейти. Большую часть бизнес логики хочется реализовать с помощью внутренних средств СУБД. FK, хранимые процедуры, на крайний случай тригера. Насколько мирно это всё будет существовать с ORM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 14:41:24 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
ORM как раз и предназначен для инкапсуляции бизнес логики, но не на уровне СУБД, а на уровне приложения. Использовать хранимки не советую, только если очень прижмет. Причина в том, что вам понадобится еще один разработчик для хранимок. Если текущий специалист может это делать и сам, то найти такого в случае его ухода будет сложнее, а значт все равно понадобится еще спец по БД. Есть еще ряд минусов использования хранимок .... - сложность тестирования бизнес логики - понадобится решать, каким образом будет обеспечиватся контроль версий (svn/git) - каким образом будет происходить развертывание хранимок на продакшн. - как делать откат версий в случае неудачного развертывания. ... - в конце концов, что делать если нужно перейти на SQL сервер другого вендера. короче гемор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 15:10:54 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
рубистИспользовать хранимки не советую, только если очень прижмет. Причина в том, что вам понадобится еще один разработчик для хранимок. Если текущий специалист может это делать и сам, то найти такого в случае его ухода будет сложнее, а значт все равно понадобится еще спец по БД. Есть еще ряд минусов использования хранимок .... - сложность тестирования бизнес логики - понадобится решать, каким образом будет обеспечиватся контроль версий (svn/git) - каким образом будет происходить развертывание хранимок на продакшн. - как делать откат версий в случае неудачного развертывания. ... - в конце концов, что делать если нужно перейти на SQL сервер другого вендера. короче гемор. Как то все натянуто за уши. Нужна скорость пишите хранимки. И все эти минусы из пальца высосаны. И про ORM тоже самое, нужна скорость отказываемся и от него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 15:30:22 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
рубистORM как раз и предназначен для инкапсуляции бизнес логики, но не на уровне СУБД, а на уровне приложения. Использовать хранимки не советую, только если очень прижмет. Причина в том, что вам понадобится еще один разработчик для хранимок. Если текущий специалист может это делать и сам, то найти такого в случае его ухода будет сложнее, а значт все равно понадобится еще спец по БД. Есть еще ряд минусов использования хранимок .... - сложность тестирования бизнес логики - понадобится решать, каким образом будет обеспечиватся контроль версий (svn/git) - каким образом будет происходить развертывание хранимок на продакшн. - как делать откат версий в случае неудачного развертывания. ... - в конце концов, что делать если нужно перейти на SQL сервер другого вендера. короче гемор. Спасибо, за развернутый ответ. А по скорости разработки что может быть быстрее? ORM или php + голый sql? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 15:32:11 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
Начинающий ORM-щикА по скорости разработки что может быть быстрее? ORM или php + голый sql? Скорость разработки выше с ORM чем с простым sql, а производительность наоборот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 15:38:07 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
авторСкорость разработки выше с ORM чем с простым sql, а производительность наоборот а потом имеем сотую реализацию getById() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 16:31:46 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
Начинающий ORM-щикБольшую часть бизнес логики хочется реализовать с помощью внутренних средств СУБД. FK, хранимые процедуры, на крайний случай тригера.Что за СУБД, если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 16:33:29 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
SmeL_mdрубистИспользовать хранимки не советую, только если очень прижмет. Причина в том, что вам понадобится еще один разработчик для хранимок. Если текущий специалист может это делать и сам, то найти такого в случае его ухода будет сложнее, а значт все равно понадобится еще спец по БД. Есть еще ряд минусов использования хранимок .... - сложность тестирования бизнес логики - понадобится решать, каким образом будет обеспечиватся контроль версий (svn/git) - каким образом будет происходить развертывание хранимок на продакшн. - как делать откат версий в случае неудачного развертывания. ... - в конце концов, что делать если нужно перейти на SQL сервер другого вендера. короче гемор. Как то все натянуто за уши. Нужна скорость пишите хранимки. И все эти минусы из пальца высосаны. И про ORM тоже самое, нужна скорость отказываемся и от него. "Нужна скорость пишите хранимки" - как-то натянуто за уши и высасано из пальца :) .... Единственное где оправдано использование хранимок это отчеты или обработка древовидных структур данных,при условии, что этих хранимок не много или у вас есть кому ими заниматься. В остальном, скорости обычно не хватает если выбрано неудачное алгоритмическое решение или само приложение написано не качественно. Компенсировать недостатки приложение написанием хранимок это не выход. Мне доводилось работать с системой у которой вся бизнес логика была на хранимках .... больше сотни таблиц и еще больше хранимок. В конторе был целый отдел, который знаимался только хранимками (T-SQL). жесть. ORM действительно снижает скорость приложения (увиличивается количество запросов и снижается их качество), но это решаемо, в любом ORM есть возможность писать запросы на прямую и вызывать хранимки. Зато ORM дает много других приемуществ .... валидация, кеширование, разделение прав доступа, миграции и т.п. короче много готовых вещей, которые не нужно изобретать заново. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 17:08:45 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
рубист, наверное спорный вопрос где лучше расположить бизнес логику в t-sql или в orm. Просто вместо отдела t-sql был бы отдел php программистов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 17:13:17 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
Начинающий ORM-щикрубист, наверное спорный вопрос где лучше расположить бизнес логику в t-sql или в orm. Просто вместо отдела t-sql был бы отдел php программистов :) Отдел программистов тоже был, как ни странно :), но ты прав вопрос не просто и зависит от многих факторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 17:30:18 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
рубист"Нужна скорость пишите хранимки" - как-то натянуто за уши и высасано из пальца :) .... Аргументы. Единственное где оправдано использование хранимок это отчеты или обработка древовидных структур данных,при условии, что этих хранимок не много или у вас есть кому ими заниматься. При чем здесь количество хранимок, при чем здесь штат В остальном, скорости обычно не хватает если выбрано неудачное алгоритмическое решение или само приложение написано не качественно. или потому что не пользуетесь хранимками т.к. нет специалиста по БД, а так как его нет вот и не справляются запросы после того как системой годик второй поработаю. Мне доводилось работать с системой у которой вся бизнес логика была на хранимках .... больше сотни таблиц и еще больше хранимок. В конторе был целый отдел, который знаимался только хранимками (T-SQL). жесть. И что тут плохого :) вы тут про безопасность поразмышляйте про целосность ORM действительно снижает скорость приложения (увиличивается количество запросов и снижается их качество), но это решаемо, в любом ORM есть возможность писать запросы на прямую и вызывать хранимки. Зато ORM дает много других приемуществ .... Вот тут согласен на 100% валидация, кеширование, разделение прав доступа, миграции и т.п. короче много готовых вещей, которые не нужно изобретать заново. Кэширование :) разделение прав уж точно дела не ORM а СУБД. Про миграцию через ORM DBA вам бы точно руки по отрывал:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 17:59:33 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
авторПро миграцию через ORM DBA вам бы точно руки по отрывал:) очень интересно послушать как сделать миграцию без запуска скриптов. делать хранимку, выполнять её и тут же грохать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 18:28:20 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
SmeL_md, При чем здесь количество хранимок, при чем здесь штат При том, что львиная доля расходов на проект это этап "эксплуатации\сопровождения" Если бы 1С-шники зарулили логику в хранимки, то давно бы обонкротились. или потому что не пользуетесь хранимками т.к. нет специалиста по БД, а так как его нет вот и не справляются запросы после того как системой годик второй ..... Я написал уже, хранимками нужно пользоватся только по делу, если действительно нет другого решения. Но лучше старатся их избегать. Это мое ИМХО, сложившееся годами. Ни кому не навязываю. И что тут плохого :) вы тут про безопасность поразмышляйте про целосность Безопасность и целостность ни как не зависят от использования или не использования хранимок. Это зависит только от прямоты рук. Кэширование :) разделение прав уж точно дела не ORM а СУБД. Про миграцию через ORM DBA вам бы точно руки по отрывал:) Да, СУБД кеширует запросы, но на уровне ORM тоже есть возможность кеширования. Разделение прав это дело приложения и ORM очень в этом помогает. Здесь я имею ввиду не права доступа в саму СУБД, а права доступа пользователей на уровне приложения. имхо: СУБД, по бальшому счету, должна отвечать только за получение\хранение\отдачу данных. Мне вот интересно, как вы собираетесь обходить те минусы о которых я писал выше, при создании бизнес логики на основе хранимок? Я их специально упомянул, так как по ним почти нет готовых решений. Наколенные велосипеды не предлагать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 18:41:10 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторПро миграцию через ORM DBA вам бы точно руки по отрывал:) очень интересно послушать как сделать миграцию без запуска скриптов. делать хранимку, выполнять её и тут же грохать? Уточню что я имел ввиду. Предположим у нас вот такая ситуация простейшая ситуация поле int4 нужно сделать int8. ORM с такой задачей думаю справится и напишет там какой то ALTER TABLE. Выполнение даже такого простого запроса в версионных СУБД просто заблокирует таблицу (для некоторого бизнеса может и не быть проблемой). После таких операций таблица с индексами могут разбухнуть в двое да и выполняться может не только доли секунд а часы. На мой взгляд это должен быть пакет sql запросов выполненный через консоль, а не через какой то там ORМ и выполнен человеком который понимает, как данные запросы отрабатывает СУБД Но выполнение миграции в одной хранимке (транзакции) вариант надежный т.к. любая проблема (exception) откатит все что выполнялось внутри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 18:52:32 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
И что тут плохого :) вы тут про безопасность поразмышляйте про целосность Безопасность и целостность ни как не зависят от использования или не использования хранимок. Это зависит только от прямоты рук. Не согласен что будет с вашей базой, если просто зайти на нее с консоли. Завтра продолжим... ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 19:01:28 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
авторВыполнение даже такого простого запроса в версионных СУБД просто заблокирует таблицу авторНа мой взгляд это должен быть пакет sql запросов выполненный через консоль уровень дискуссии ниже плинтуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 19:10:57 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
мое имхо. ORM нужен, ибо в прикладном коде вместо getById(продолжить по вкусу экранированием параметров, sql инъекциями etc ) руками писать запрос просто глупо, надоедает после второго раза, и все, всё равно пишут что-то свое. ORM нужен готовый потому что свой велосипед обычно с квадратными колесами, глючит, не покрыт тестами и хорошо документирован только на языке php. Меру использования ORM каждый выбирает сам для себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 19:14:47 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
ОРМ не нужен нафиг. Придуман для ламеров, чтобы подсадить на иглу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 20:30:30 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
авторприкладном коде вместо getById(продолжить по вкусу экранированием параметров, sql инъекциями etc ) руками писать запрос ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2012, 21:28:59 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
Кто нибудь считает спорным утверждение, что с помощью ORM приложение разрабатывается быстрее? Я склоняюсь к следующему подходу: 1) Редактирование простых сущностей в базе осуществлять через ORM 2) Тяжелые запросы, хитрые джойны и апдейты осуществлять прямыми запросами к базе или хранимками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2012, 11:17:55 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
еще вьюхи есть, да. и триггеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2012, 11:23:21 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
Начинающий ORM-щикКто нибудь считает спорным утверждение, что с помощью ORM приложение разрабатывается быстрее?... Угу. Имеются такие. А особенно, если учесть, что над вашей базой не только пхп разрабатывается, а ещё и всякие делфи, сишарпы и т.д. и т.п. . Короче, ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2012, 12:04:22 |
|
||
|
ORM vs голый SQL
|
|||
|---|---|---|---|
|
#18+
ShSergeНачинающий ORM-щикКто нибудь считает спорным утверждение, что с помощью ORM приложение разрабатывается быстрее?... Угу. Имеются такие. А особенно, если учесть, что над вашей базой не только пхп разрабатывается, а ещё и всякие делфи, сишарпы и т.д. и т.п. . Короче, ясно. По моем автор вообще php не упамянал. При чем тут всякие делфи и сишарпы?, речь об использовании ORM в принципе. Походу вы нормальный ORM в глаза не видели и не работали с ним в реальном проекте. .... типа "не читал, но осуждаю" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2012, 14:08:05 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=139&tid=1464889]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
84ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 389ms |

| 0 / 0 |
