Смущает наличие таблицы используемой для связи многие-ко-многим, она прогнозируется очень большой, раз в 10-20 больше Таблицы №2. И вряд ли это предел.
По факту у меня происходит как-то так:
- Виды - здесь хранятся маршруты и вызовы контроллеров.
- Контроллеры - обращаются к модели.
- Модель - тут находится бизнес-логика, модель смотрит в таблицу.
- Таблица - Тут описание структуры данных, условно таблица в БД.
По идее контрллер лишь тонкая прослойка между моделью и внешним миром, логики почти не содержит.
Что-то всё вывернуто наизнанку.
В моём проекте накоплены определённые общие сущности и логика, которую модули используют чтобы не дублировать функционал на своём уровне. И работа с БД идёт так, чтобы модуль сам ничего со структурой не сделал. Если ему нужны данные он их получит через основной проект.
sim3x, Пользователь работает в текстовом редакторе (Word, Writer, Блокнот, текстовое поле в браузере) - Нажимает горячую комбинацию - Запускается ДРУГАЯ программа - Там производится выбор шаблона текта - Нажимается кнопка (или другая комбинация клавиш) - В исходную программу в место где стоит курсор вставляется текст.
Но я так подозреваю что от этого не уйти.