Как спроектировать модуль отдел, в котором были бы сотрудники отдела + краткое описание отдела под ZF2?
Извините, пожалуйста, за, возможно (а скорее не возможно, а такой и есть), тупое название вопроса.
Сам по себе себе ответ очевидный. Есть отделы, есть описание отделов, есть сотрудник, есть описание сотрудника, есть связь отдела с сотрудником. Все просто.
Другой вопрос как это позже закодить на zf2.
ZF2 состоит из модулей. Вот тут появляются вопросы: написать 1 большой и mostrous модуль, который бы отвечал за все или написать модуль для непосредственно отделов и модуль, который бы работал с пользователями и связать их каким-то образом между собой? А возможно ли это будет закодить на ZF2 позже?
В zf2 я новичок. Тыркаюсь пытаюсь, лилипутовыми шагами учусь, поэтому и появляются такие вопросы. Собственно, здесь больше вопрос не о проектировании, а о том можно ли это будет организовать на zf2 или, вернее, как ЛУЧШЕ организовать такую предметную область. По реализации вопросы если и будут, то позже, на данный момент интересует такой организационный вопрос.
Мне видятся следующие варианты:
1. Написать приложение в виде одного модуля.
2. Написать приложение в виде двух модулей, каждый из которых требует обязательного наличия другого модуля.
3. Написать приложение в виде двух модулей, каждый из которых может работать как самостоятельно, так и в связке с другим модулем (если таковой установлен в систему).
Первый и второй вариант практически равнозначны (никакой монструозности в первом варианте не будет, если проектированию структуры приложения уделить столько же внимания, сколько и во втором случае).
Использовать второй вариант, на мой взгляд, следует лишь в том случае, если подобного разделения требуют какие-то организационные условия (например, если модули будут разрабатывать разные разработчики, которые по каким-то причинам не могут работать вместе в рамках единого приложения).
Третий вариант, соответственно, увеличит затраты на разработку из-за написания дополнительного кода (надо будет писать код как для ситуации, когда один модуль работает в паре с другим, так и для ситуации, когда один модуль работает изолированно от другого).
Вообще, если из условия задачи исходит, что эти два модуля будут работать в паре и только в паре (т.е. изначально полная изолированность не закладывается), то разделять подобное приложение на модули, на мой взгляд, смысла нет.
По-моему писать два модуля для такой тривиально задаче сродни написания нового модуля для каждой новой веб страницы. Я написал такую штуку (правда лет 5 назад, еще на ZF 1.*), ничего необычного там нет, я бы порекомендовал вам лучше подумать над архитектурой БД.