Допустим, у меня есть куча продуктов. Каждый продукт имеет идентификатор, цену и длинное описание, состоящее из нескольких абзацев. У каждого продукта также будет несколько номеров sku, которые будут представлять разные размеры и цвета.
Чтобы уточнить: product_id 1 имеет 3 skus, product_id 2 имеет 5 skus. Все скусы в продукте 1 имеют одинаковую цену и описание. Продукт 2 имеет цену и описание, отличные от продукта 1. Все продукты Skus для продукта 2 делятся ценой и описанием продукта 2.
Я мог бы иметь большую таблицу с разными записями для каждого sku. Записи будут иметь избыточные поля, такие как длинное описание и цена.
Или я мог бы иметь две таблицы. Один назвал «продукты» с product_id, ценой и описанием. И один с именем "skus" с product_id, sku, цветом и размером. Затем я бы присоединился к таблицам в столбце product_id.
$query = "SELECT * FROM skus LEFT OUTER JOIN products ON skus.product_id=products.product_id WHERE color='green'";
или
$query = "SELECT * FROM master_table WHERE color='green'";
Это тупая версия моей установки. В конце будет намного больше столбцов и много продуктов. Какой метод будет иметь лучшую производительность?
Итак, чтобы быть более конкретным: допустим, я хочу НРАВИТСЯ поиск по столбцу long_description для всех skus. Я пытаюсь сравнить наличие одной таблицы с 5000 long_description и 5000 skus против OUTER, объединяющей две таблицы, одна имеет 1000 записей long_description, а другая - 5000 skus.