Ваши модели CI должны быть организованы так, чтобы отражать ваш домен, поэтому в случае городов, стран, компаний и т. Д. Каждый из них представляет собой разные объекты и заслуживает отдельной модели.Больше файлов не означает, что они менее ремонтопригодны.
Что касается autosuggest, ваша модель просто должна доставить данные в контроллер, который будет вызываться с использованием Ajax.Вы можете сделать json_encoding потока данных в модели или контроллере, я предпочитаю использовать контроллер.
Так что, в конце концов, у вас, надеюсь, будет один плагин autosuggest во внешнем интерфейсе, который просто вызывает различные URL-адреса контроллера.Эти контроллеры знают, какую модель использовать для получения автозаполненных данных.
Это чистое разделение обязанностей и возможность обслуживания.