Я новичок в MVC, но уже вижу его преимущества и преимущества. Тем не менее, у меня есть (вероятно, легко ответить) вопрос о дизайне:
Я думал о моделях и обдумывал, как правильно их структурировать. На мой взгляд, есть несколько вариантов:
1) Модели и структура таблиц имеют отношение 1 к 1 ... это означает, что в значительной степени для каждой таблицы существует соответствующая модель. Класс модели имеет атрибуты, соответствующие столбцам таблицы, и имеет любые необходимые методы (например, методы получения и установки) для манипулирования данными в таблице любым необходимым способом. Это похоже на универсальную опцию, и я думаю, что тогда я бы заставил контроллер вызывать модели по мере необходимости для выполнения любой бизнес-функции.
2) Модели более тесно связаны с работой бизнес-логики, а не с данными: так, например, если на внешнем интерфейсе удаление определенного объекта затрагивает несколько таблиц, модель затем «моделирует» это поведение и взаимодействует с несколькими таблицами и выполняет необходимую функцию. Затем контроллеру просто нужно вызвать единственную модель для любого делового поведения. Это менее общий характер, поскольку модели гораздо более тесно связаны между собой, но, кажется, быстрее реализуются.
3) Что-то среднее между первыми 2 вариантами. Или, может быть, я полностью упускаю суть.
Надеюсь, это имеет смысл! Если я не совсем упускаю суть, я склонен думать, что вариант (1) лучше. Есть идеи?
Редактировать: Не то чтобы это имело значение, но я планирую использовать Codeigniter PHP MVC framework.