Насколько сложными должны быть модели?

При реализации моделей с использованием шаблона MVC, насколько сложными должны быть мои модели?

Допустим, у меня есть несколько таких таблиц:

  • Пользователь (идентификатор, пароль, создано ... )
  • Электронная почта (user_id, email ...)
  • Адреса (user_id, address ...)

У меня есть контроллер под названием UserController. Этот контроллер должен позволять мне входить в систему, создавать пользователей и т. Д. .

<!-- language: php -->
class UserController{

    public function create($array){
        ...
    }

    public function login($email, $password){
        ...
    }
}

Должны ли мои модели быть очень примитивными, реализующими только операции CRUD через ORM? Это привело бы к такому коду:

<!-- language: php -->
class UserController{

    public function create($array){
        $userModel->username = 'blah';
        $userModel->blah = 'blah';
        $id = $userModel->save();

        $emailModel->id = $id;
        $emailModel->email = "emailhere";
        $emailModel->save();

        //Do the same for addresses
    }

    public function login($email, $password){
        ...
    }
}

Или, в качестве альтернативы, я мог бы иметь более сложные модели:

<!-- language: php -->
UserModel{
    public function login($email, $password){
        //Do the joining and checking here, then return true or false to the controller
    }
}

Затем в моем контроллере:

<!-- language: php -->
userModel->login($mail, $password);

Итак, что лучше? Втиснуть всю логику в модели или у меня должны быть модели, выполняющие только базовые операции CRUD? Наконец, как мне работать с объединениями таблиц? Должны ли они обрабатываться внутри модели или контроллер?

Приветствия

5
задан F21 10 July 2011 в 09:39
поделиться