Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   mvc вызов модели из модели (https://javascript.ru/forum/server/12653-mvc-vyzov-modeli-iz-modeli.html)

jetli13 27.10.2010 19:57

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

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

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

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

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

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

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

Спасибо!

B~Vladi 28.10.2010 10:33

Цитата:

Сообщение от jetli13
Слышал мнение что вызов модели из модели - зло.

Для этого же есть контроллер :)

Суть вопроса не до конца ясна, может я ещё не проснулся...

VKS 28.10.2010 12:09

Можно же унаследовать модель от базовой, и в ней хранить общие методы?


Часовой пояс GMT +3, время: 22:25.