Каков наилучший способ получения связанных строк из дочерней таблицы в запросе? - PullRequest
0 голосов
/ 22 февраля 2019

Для моего проекта в колледже я создаю модельный веб-сайт для обучения.Я искал похожие вопросы, однако не могу получить более глубокие идеи.

Моя текущая структура таблиц:

  1. Продукты - sku (PK), имя, цена, other_columns
  2. 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 explodeproduct_images и цикл для отображения или использования его в других целях.

Теперь мои вопросы:

  1. Это эффективный подход?Или какой-нибудь лучший подход, о котором я не знаю?
  2. Когда необходимо объединить несколько столбцов из дочерней таблицы (здесь productMedia), я пишу GROUP_CONCAT (column SEPARATOR) as concatenatedColumn несколько раз, это не повлияет на производительность?
...