Узелок на память.
Либо глобально следим, чтобы модель инициализировалась и больше запросов не было, либо делаем статический кэш данных в самой модели, как-то так:
class Entity { private static $entityData = NULL; private function realGetData($id) { // обращение к БД } public function getData($id) { if (!self::$entityData) self::$entityData = $this->realGetData($id); return self::$entityData; } }
Если про это не забывать, количество запросов к базе будет заметно меньше.
Паттерн Singleton делает то же самое для экземпляра объекта.