В своей жизни я видел много сложного кода. Довольно часто причиной этой сложности была логика приложения в сочетании с логикой базы данных. Сохранение логики вашего приложения вместе с логикой базы данных делает ваше приложение намного более сложным, его трудно тестировать и поддерживать. Кароч, в статье автор рассказывает как готовить паттерн "репозиторий"