Показать сообщение отдельно
  #1 (permalink)  
Старый 27.10.2010, 19:57
Кандидат Javascript-наук
Отправить личное сообщение для jetli13 Посмотреть профиль Найти все сообщения от jetli13
 
Регистрация: 25.11.2009
Сообщений: 109

mvc вызов модели из модели
Добрый день.
Подскажите пожалуйста как правильно организовать взаимодействие между моделями. В данном случае речь идет об организации взаимодействия в codeigniter. Но наверно этот вопрос можно рассматривать не привязываясь к какому либо фреймворку.

Ситуация :
есть класс Blog (модель)
(1) Blog может содержать в себе публикации (к примеру последние 10 штук) в виде массива объектов.
(2) Либо Blog может лезть в БД и брать информацию по тем же последним 10 публикациям.

в первом случае мы используем память не рационально. т.к. храним объекты со всеми методами и данными (приватными). Но удобно - есть один класс отвечающий за работу с данными публикации.

Во втором мы имеем несколько точек доступа к одним и тем же данным. Т.е. при добавлении одного поля в таблицу нам придется менять поля в модели в нескольких местах. Для этого примера это всего 2 места но пример оч. простой просто показывающий суть вопроса. В реале это может быть сколь угодно сложная система.

Можно конечно рассмотреть и 3 вариант, когда нет класса публикации и есть один большой класс Blog который запрашивает из базы все возможные данные и хранит в себе кучу методов для работы с ними, но это жесть и слишком большая ответственность для класса.

Как все таки правильно? Вызывать модель из модели (кстати у модели нет своей ф-ции в отличие от контроллера но обойти через CI можно) или может каким нибудь образом использовать контроллер для взаимодействия.

Слышал мнение что вызов модели из модели - зло. Но без внятных объяснений кроме "делай так и спи спокойно ) ".

Спасибо!
Ответить с цитированием