Задать вопрос
youngmysteriouslight
@youngmysteriouslight
ТК, ТТ, JS, FP, WM

Как в 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)?
  • Вопрос задан
  • 42 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
ORM и DAO пользоваться не пробовали? Doctrine, Active Record и иже с ним?) Когда люди говорят о том что им чего-то не хватает в SQL начинается нервным смешок по тому что всегда есть NOSQL, но проектирование структур данных все-равно происходит примерно также
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы