Фанат, возможно он даже самый правильный, драйвер вернул таблицу, крути верти для каждой модели как необходимо. но есть одно но. постоянная перекрутка готового результата, повторность логики перекрутки в разных классах.
те. еслиб драйвер возвращал не массив а Iterator mysql_result, в смысле
считыванье из базы еще не имело место, то первая проблема решена (перекручиваем по чтению прям в сервисе). если все сервисы "унаследовать" от одного класса то и 2я проблема решена.
в твоем случае я не знаю куда эту логику прятать. тк. драйвер вернул массив, то только с перекруткой данных можно использовать драйвер.
экономия на спичках, конечноже. но если запрос вернет пару сотен тысяч записей и задача по ходу чтению чтото делать то сохранение в массив излишне, память сожрем