Позвольте мне начать с простого примера, чтобы показать, как структурированы мои данные. Существует четыре таблицы: Employee
, Store
, Department
и Employee_Department_Permissions
.
Отделы принадлежат магазинам (например, таблица Отделов может содержать запись для молочного отдела магазина 5). Сотрудникам предоставляется право работать в отделах через таблицу Employee_Department_Permissions, в которой содержатся идентификатор сотрудника и идентификатор отдела.
Допустим, сотрудник может войти в мое приложение и просмотреть список всех магазинов в базе данных. Рядом с каждым магазином я хочу распечатать, сколько отделов они могут работать в каждом магазине. У меня есть модель Employee с картографом, который предоставляет метод fetchAll
для выполнения первой части.
Но где мне узнать, в каких отделах может работать сотрудник? В моей модели обертки я могу позвонить findDependentRows
, чтобы сделать это. Или я мог бы сделать это в моем контроллере с необработанными Zend_Db_Select
вызовами. Третий вариант, который я рассматривал, состоял бы в том, чтобы просто добавить столбец в таблицу Employee, содержащую эту информацию, но тогда мне нужно было бы обновить вторую таблицу, когда Employee_Department_Permission изменен.
Заранее благодарю за любой совет.