bkonst
.. хочется странного?...
Обеими руками за Bulkload. Однако даже с Bulkload тормозов при обработке в PHP большого количества записей не обойтись. Предположим, что временные затраты на анализ очередной полученой записи, инициализацию объекта и занесение его в кэш ~0.1ms. Вспоминаем арифметику и получаем, что при обработке 10000 объектов затраты только на из создание составят ~1000ms. Лично мне от этой цифры мучительно больно, а вам? Да, мы можем наворотить многоуровневое кэширование и получить приемлемую скорость (однако своевременное обновление кэша при внесении изменений это тоже та еще задача). А можем сделать более интеллектуальный генератор запросов. Лично я считаю, что первый путь приведет в тупик.Автор оригинала: whirlwind
Неправда Ваша. Задача ОРМ сделать как можно меньше запросов. Если сама она не может угадать в каком случае как удобнее выбирать, значит нужно предоставить удобные средства для программиста. Это возможно когда в конце концов большинство оторвутся от LazyLoad и подумают в сторону BulkLoad
jonjonson
Абсолютно верно. Он сложнее, но может быть и гибче. Пример? Пусть вам необходимо работать со несколькими связанными выборками; например, "продавцы данного отдела с суммой заказов за последние полгода > N", "продавцы данного отдела с суммой заказов за последние полгода > N со стажем работы более X месяцев", "продавцы данного отдела с суммой заказов за последние полгода > N со стажем работы более X месяцев получившие премии за последний месяц" и так далее. В этом случае можно написать три независимых SQL-запроса (получив проблемы при изменении бизнес логики), либо (если ORM достаточно функциональна) создать объект "фильтр" и в процессе получения выборок постепенно добавлять в него новые правила отбора.Программисту знающему php и SQL для использования ORM нужно изучать ещё один язык. Построение же запросов через ORM - это написание кода на языке ORM. Вспомните работу с файлами или потоками. ORM ещё сложнее.
Вообще, в ORM интересна не сама по себе (отобразить атрибуты объекта на поля таблицы несложно), а в связи с инструментами. Генератор запросов - один из них.