Допустим, есть сущность "запись", "комментарии", "пользователь", все это отдельные классы.
В приложении будет, допустим, модель "запись" будет загружать коллекцию объектов 'запись' с кол-вом комментариев.
И все это будет отображаться на странице.
Но как быть, если нужно, чтобы записи которые пользователь уже посмотрел или добавил в закладки помечались?
Все мои решения приводят либо к связям двух моделей, либо выносу логики в контроллер.
Делите не модели, а ограниченные контексты.
Запись, комментарии и пользователь - это один ограниченный контекст.
Эта идея освящается в книге Вернона - "Реализация методов предметно-ориентированного проектирования".
Почему не проще оставить эту задачу на сами статьи/комментарии/записи,
с промежуточной таблицей для отметки, прочитано или нет?
id -> autoinc
isRead -> bool
UserId -> User
Content_id -> int
Content_type -> Types
В принципе даже для какой-то дальнейшей статистики пригодится
Можно накастылить на фронте, с localstorage например
Модель абстрактное понятие. Модель данных это данные. Но модель в MVC/MVP/MVA/MMVC не модель данных.
То, что вы хотите написать в контроллере должно быть в сервисах.
Контроллеры тоже могут быть сервисами :)
А вообще, если данные в сущности - работа с ними тоже должна быть в сущности, см. information hiding, information expert и т.д.