Честно говоря, я не думаю, что есть один правильный путь для этого. Я бы сказал, что метод экземпляра является наиболее распространенным, но это не значит, что он правильный или неправильный.
Одно большое отличие CodeIgniter от некоторых других фреймворков заключается в том, что модели могут быть такими, какими вы хотите их видеть. Согласно руководству CI «Модель представляет ваши структуры данных». Это говорит о том, что модели «обычно» взаимодействуют с вашей базой данных.
Мне нравится свободное определение, которое CodeIgniter использует для моделей, потому что оно позволяет мне создавать модели для работы с любым набором данных. Хотите использовать RSS-канал в качестве источника данных? Вы можете использовать модель для этого. Хотите получить данные из веб-сервиса? Вы можете использовать модель для этого. У вас есть свобода определять, как вы используете модели.
Я бы сказал, что самая важная вещь - последовательность. Выберите один метод и используйте его последовательно на протяжении всего проекта. Если вы работаете с другими разработчиками над проектом, может быть лучше использовать методы экземпляра. Таким образом, они не запутаются в том, что происходит, сравнив рабочий код на вашем сайте с документацией CodeIgniter. Это, конечно, зависит от уровня квалификации разработчиков, с которыми вы работаете.