mvc вызов модели из модели
Добрый день.
Подскажите пожалуйста как правильно организовать взаимодействие между моделями. В данном случае речь идет об организации взаимодействия в codeigniter. Но наверно этот вопрос можно рассматривать не привязываясь к какому либо фреймворку.
Ситуация :
есть класс Blog (модель)
(1) Blog может содержать в себе публикации (к примеру последние 10 штук) в виде массива объектов.
(2) Либо Blog может лезть в БД и брать информацию по тем же последним 10 публикациям.
в первом случае мы используем память не рационально. т.к. храним объекты со всеми методами и данными (приватными). Но удобно - есть один класс отвечающий за работу с данными публикации.
Во втором мы имеем несколько точек доступа к одним и тем же данным. Т.е. при добавлении одного поля в таблицу нам придется менять поля в модели в нескольких местах. Для этого примера это всего 2 места но пример оч. простой просто показывающий суть вопроса. В реале это может быть сколь угодно сложная система.
Можно конечно рассмотреть и 3 вариант, когда нет класса публикации и есть один большой класс Blog который запрашивает из базы все возможные данные и хранит в себе кучу методов для работы с ними, но это жесть и слишком большая ответственность для класса.
Как все таки правильно? Вызывать модель из модели (кстати у модели нет своей ф-ции в отличие от контроллера но обойти через CI можно) или может каким нибудь образом использовать контроллер для взаимодействия.
Слышал мнение что вызов модели из модели - зло. Но без внятных объяснений кроме "делай так и спи спокойно ) ".
Спасибо!
|