Нужно ли выбирать зависимые строки в модели или контроллере? - PullRequest
1 голос
/ 28 мая 2011

Позвольте мне начать с простого примера, чтобы показать, как структурированы мои данные. Существует четыре таблицы: Employee, Store, Department и Employee_Department_Permissions.

Отделы принадлежат магазинам (например, таблица Отделов может содержать запись для молочного отдела магазина 5). Сотрудникам предоставляется право работать в отделах через таблицу Employee_Department_Permissions, в которой содержатся идентификатор сотрудника и идентификатор отдела.

Допустим, сотрудник может войти в мое приложение и просмотреть список всех магазинов в базе данных. Рядом с каждым магазином я хочу распечатать, сколько отделов они могут работать в каждом магазине. У меня есть модель Employee с картографом, который предоставляет метод fetchAll для выполнения первой части.

Но где мне узнать, в каких отделах может работать сотрудник? В моей модели обертки я могу позвонить findDependentRows, чтобы сделать это. Или я мог бы сделать это в моем контроллере с необработанными Zend_Db_Select вызовами. Третий вариант, который я рассматривал, состоял бы в том, чтобы просто добавить столбец в таблицу Employee, содержащую эту информацию, но тогда мне нужно было бы обновить вторую таблицу, когда Employee_Department_Permission изменен.

Заранее благодарю за любой совет.

1 Ответ

3 голосов
/ 28 мая 2011

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

Конечно, просто извлечь из контроллера, я имею в виду, поскольку мы обрабатываем запрос, было бы так просто выполнить быструю выборку и нажать эту кнопку.прочь на вид. Здесь dicipline вступает в игру .По мере роста вашего приложения вы по достоинству оцените чистое разделение, эта методология предлагает вам , если применяется .

Мои 2 цента, счастливого кодирования вашему другу.

...