Несмотря на то, что MVC является очень распространенным шаблоном разработки в сети, при переходе к сложным структурам, как вы сказали, мы сталкиваемся с проблемой проектирования, называемой импедансом.
Импеданс - это накладные расходы, которые появляются при использовании разных моделей возможностей. Например, программирование ООП гораздо менее ограничительно, чем простые структуры, используемые в базах данных - вы можете составлять и объединять объекты. Для этого в базе данных вам понадобится таблица отношений N: N.
Текущие решения в большинстве сред - это использование свойств has_many и own_to в моделях. Это решает его проблему, но появляются накладные расходы (множество объектов, тонны простых запросов ...).
Для многих разработчиков это может звучать безумно, но: переписать свои модели.
Сделайте это для облегчения работы композиции / агрегации. Поскольку PHP 5.2+ поддерживает приведение типов (объекты и массивы), вы можете использовать это для написания моделей:
<?php
class Photo extends Model {
private $id;
private $src;
private $description;
}
class Employee extends Model {
private $id
private $name;
private $age;
private Photo $photo;
}
$x = new Employee(123);
echo $x->photo->description;
?>