Насколько крупной должна быть модель в рамках MVC? - PullRequest
6 голосов
/ 14 февраля 2010

Я читал несколько ранее заданных вопросов, и я не нашел ни одного, который отвечал бы на мой вопрос "черным по белому" для меня! Итак, извинения, если это повторяется. Вопрос, вероятно, похож на вопрос «как долго кусок веревки», но потерпите меня!

Для системы регистрации у меня есть пользовательская модель с такими функциями, как:

  • add_user
  • delete_user
  • activate_user

Приведенная выше пользовательская модель имеет дело с одной таблицей. Таблица пользователей в базе данных MySQL.

Вы можете догадаться, что делает каждая функция, но достаточно ли это грубо? Я имею в виду, должна ли моя модель содержать методы, которые намного шире, такие как:

  • add_record
  • delete_record
  • update_record

Где я передаю в таблицу и уникальный идентификатор записи для удаления, добавления или обновления?

Я использую codeigniter, но меня интересует, как все должно быть сделано в чистой среде MVC.

Прошу прощения, если этот вопрос слишком требователен.

Спасибо всем

Ответы [ 2 ]

10 голосов
/ 14 февраля 2010

Я не уверен, что вы имеете в виду под "грубым".

"если моя модель содержит методы, которые намного шире, такие как: add_record, delete_record, update_record"

Абсолютно нет. Никогда. Это побеждает цель иметь модель.

Такого рода "универсальные" вещи предназначены для базы данных. Задача модели - адаптировать общую базу данных к вашей конкретной проблеме.

Ваша модель должна соответствовать вашей проблеме.

"пользовательская модель с такими функциями, как: add_user, delete_user, activ_user" В этом все дело. Ваша модель отражает ваше приложение, вашу проблемную область, ваше решение.

Ваша модель должна быть в состоянии - по сути - автономно. Вы должны иметь возможность обернуть вашу модель в приложение командной строки, приложение с графическим интерфейсом или веб-страницу.

0 голосов
/ 14 февраля 2010

Вы можете догадаться, что делает каждая функция но достаточно ли это грубо Я имею в виду должна ли моя модель содержать методы, которые гораздо шире, например:

* add_record
* delete_record
* update_record

Где я прохожу в таблице и уникальны идентификатор удаляемой записи, добавить или обновить?

Если вам необходимо получить только информацию о пользователе, который не обязательно использует всю запись, то вам просто необходимо иметь *_user функции, но включать их только в свою модель пользователя.

Если вам нужно получить целые записи, а не только пользователя, то вам также следует иметь *_record функции, но поместить их в свою модель записей, а НЕ в вашу пользовательскую модель.

Важно помнить, что не следует включать все эти функции только в одну модель. Проще говоря, ваш пользователь и такой же, как запись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...