Как лучше реализовать фильтр с огромным количеством товаров по свойствам?
На сайте имеется одна категория с привязанными 10к товарами. Также имеется фильтр по свойствам товаров.
Чтобы вывести свойства - нужно проверить его наличие у всех 10к товаров, а сами свойства находятся в другой таблице через связь "многое-ко-многим", то есть нам нужно сначала отобрать эти 10к товаров у данной категории, и по ней искать все свойства через whereIn([1, 2, 3, ..., 9999, 10000])
Вопрос - можно ли как-то сократить этот whereIn запрос, или это нормальная практика? И как вообще лучше реализовать фильтр с огромным количеством товаров по свойствам.
3 таблицы:
products:
id, field1, field2, ...
options:
id, field1, field2, ...
products_options:
product_id, option_id
Где products_options, это связывающая таблица "многое-ко-многим" между таблицей products и options.
vism ну это вам очевидно, я вот например был почти уверен что у вас EAV - схема, а у вас оказались обычные нормальные столбцы по одному на свойство товара.