Я хотел бы напечатать список элементов из таблицы базы данных и вместе с каждым небольшим списком (10 элементов max) связанных подэлементов.Получение связанных данных в списке
К примеру, у меня есть эти 2 таблицы:
ITEMS
id: integer
name: string
SUBITEMS
id: integer
name: string
item_id: integer
Таким образом, элемент может иметь много подразделов.
Я хотел бы напечатать что-то вроде этого:
Item 1
this item has: subitem 1, subitem 2, subitem 3
Item 2
this item has: subitem 4, subitem 5, subitem 6
Item 3
this item has: subitem 2, subitem 4, subitem 7
Как я мог получить это с исполнением в виду? Как я уже сказал, у каждого элемента может быть много подэлементов, но я буду показывать максимум 10.
Если я сделаю выбор с соединением, я думаю, что это может сильно повлиять на базу данных, когда есть разбиение на страницы , например, 25 элементов на страницу и 100 запросов пользователей. Поэтому я считаю, что это не будет хорошим решением.
Я подумал об обходном пути, что-то грязное: добавив новое поле в таблицу ITEMS с именем subitems_summary (типа текста), и каждый раз, когда подтип присваивается элементу, я делаю выбор, чтобы присоединиться к двум таблицы и сохранить там результаты, поэтому я могу позже форматировать данные из этого поля. Например, в приведенном выше листинге поле subitems_summary для элемента 3 будет: «подпункт 2, подпункт 4, подпункт 7».
Как вы думаете?
Рассмотрим, что ваш «грязный обходной путь» не только для выполнения выбора, но и вставки, обновления и удаления для отдельных подпозиций. –
Я бы использовал 'select *' и просто перебирал набор результатов и печатал ненулевые значения – alfasin