Добрейших вечеров! Вопрос такой: в интернет-магазине создается товар. Для этого товара соответственно создается в базе запись. Но у товара могут быть модификации (цвет, размер и т.д.). Как лучше хранить модификации? Создать таблицу модификаций и хранить каждую модификацию отдельно? Или записывать все модификации в JSON-поле? Мне нравится вариант с JSON. Но смущает поиск по параметрам. Если пользователь будет искать товар, например красного цвета, то какой поиск будет быстрее по JSON-полю или по отдельной таблице? Или как вариант отфильтровать результат на PHP?
Скорость поиска по порядку: 1) По "обычному индексу" 2) По "полнотекстовому" индексу 3) Без индекса * "вариант отфильтровать результат на PHP" - где-то на уровне 3-го для небольшого объёма данных и 4-ое место для больших данных. Как-то так... --- Добавлено --- Ах да, для юниоров: JSON это 2-ое или 3-е место, в зависимости от.
@Chushkin я не тестил но думаю json extract все таки быстрее полнотекстового поиска. Тут скорее проблема в том что json появился только в 5.7 и орм еще не особо с ним дружат. Плюс нету многих фишек. Многое придется писать самому.
@Chushkin, ну фильтровать на PHP я бы и не стал) Хочется сделать с использованием JSON. Но есть опасения именно при работе с большими объёмами данных. Придётся наверное протестировать.