Как в PHP достать функционально (т.е. при помощи внешнего ключа) вложенную структуру из SQL DB?
Добрый день. Я подошел к моменту, когда плоских структур не достаточно. Кажется, что вопрос простой, но ответа не нахожу и сам сообразить не могу.
Есть две таблицы A(id,b,x,y,...) и B(id,z,...), одна содержит внешний ключ от другой: A.b -> B.id.
Хотелось бы сформировать массив элементов A, в котором значение поля b каждого элемента было бы массивом из элементов B с id=<значение атрибута b рассматриваемого элемента из A>.
Очевидно решение состоит в том, чтобы вытянуть таблицу A в виде плоского массива, а затем пройтись циклом и для каждого элемента вытянуть из таблицы B элементы с id=<значение поля b> и заменить полученным массивом значение поля b. Очевидны недостатки: огромное количество запросов к БД.
Есть ли какое-то хорошее решение, особенно не требующее велосипедостроительства и хорошо масштабируемое при изменении схемы БД (добаление полей, добавление функциональных связей A->C и B->D)?
ORM и DAO пользоваться не пробовали? Doctrine, Active Record и иже с ним?) Когда люди говорят о том что им чего-то не хватает в SQL начинается нервным смешок по тому что всегда есть NOSQL, но проектирование структур данных все-равно происходит примерно также