Что касается # 1, бизнес-правила не будут существовать в вашей базе данных, они будут существовать в приложении, будь то на уровне домена, отдельном бизнес-уровне и т. Д. ... или прямо в ваших контроллерах, в зависимости от вашего подход.
Вы представите другому вошедшему в систему администратору, создающему пользователя, который отличается от экрана, или представлению, не представленному неаутентифицированному пользователю, создающему учетную запись, верно? HTTP-POST из этого представления будет соответствовать другому действию, которое будет либо напрямую обрабатывать логику, либо делегировать соответствующему объекту (ам). Один метод проверяет предоставленный пароль и либо создает запись для пользователя, либо перенаправляет пользователя на какую-то страницу сбоев (например, «пароли не совпадают» или «имя пользователя уже занято»). Другой метод создаст нового пользователя в базе данных, без вопросов.
Публикация различных представлений для разных действий, соответствующих разным методам, каждый из которых обрабатывает одну конкретную работу / сценарий.