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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 13:47
1000 руб./за проект
26 апр. 2024, в 13:40
4000 руб./за проект
26 апр. 2024, в 13:39
500 руб./за проект