Для моего проекта в колледже я создаю модельный веб-сайт для обучения.Я искал похожие вопросы, однако не могу получить более глубокие идеи.
Моя текущая структура таблиц:
- Продукты - sku (PK), имя, цена, other_columns
- ProductMedia - путь (UNIQUE), product_sku (из таблицы продуктов).
* path
содержит имя файла носителя.
Когда я получаю данные о продуктеЯ выбираю столбцы из таблицы: products и LEFT JOIN productMedia и GROUP_CONCAT и получаю пути.
Запрос:
SELECT
p.*, // for simplicity mentioned as *
(GROUP_CONCAT(path SEPARATOR ',') FROM productMedia WHERE product_sku = p.sku) as product_images
FROM products p
WHERE SOME_CONDITION
Для отображения I explode
product_images и цикл для отображения или использования его в других целях.
Теперь мои вопросы:
- Это эффективный подход?Или какой-нибудь лучший подход, о котором я не знаю?
- Когда необходимо объединить несколько столбцов из дочерней таблицы (здесь productMedia), я пишу
GROUP_CONCAT (column SEPARATOR) as concatenatedColumn
несколько раз, это не повлияет на производительность?