Добрый день, коллеги! Помогите найти грамотное решение.
Имею контроллер Articles и две модели-таблицы - pages/versions, где одной странице соответствует множество версий.
Требуется сделать контроллер News, также с поддержкой версионности. Логика контроллера News будет своя, а вот логика моделей и сами таблицы (две отдельные таблицы в БД) будут иметь очень много общего.
Какое решение в этой ситуации будет наиболее оптимальным с точки зрения прозрачности кода?
-
Полное дублирование кода контроллера и моделей с последующей независимой разработкой (2 контр.+4 модели+4 таблицы)
-
Использование общих моделей, но разных «поведений» (2 контр.+2 модели+4 таблицы)
-
Модели разные, но у них есть общие предки, содержащие универсальные функции (2 контр.+6 моделей+4 таблицы)
-
…