Пишу небольшой интернет магазин на laravel, сейчас думаю как лучше реализовать фильтр товаров. Аттрибуты каждого товара хранятся в json поле базы в виде:{"factory": "Восход", "material": "Пластик"}Как лучше в таком случае реализовать фильтр товаров? Мне в голову пришло только сделать в каталоге формочку, которая отправляет get запрос вида /products?factory=Восход&material=ПластикЭто совсем говно, или сойдет? Ничего страшного в том, что кириллицу передаем в get параметрах, или может есть более элегантное решение?
>>1788527Ебать ты атрибуты запихнул, конечно.Я не в курсе за вашу ларавель, но бля. Из такой штуки тупо неудобно их искать же. Медленно через like выходит же.
>>1788530>Ебать ты атрибуты запихнул, конечно.Аттрибуты довольно разные, и точный список заранее неизвестен, поэтому нужно что-то гибкое и более-менее масштабируемое. От EAV решил отказаться, а nosql не хочется тащить сюда. Поэтому решил аттрибуты хранить в json и просто прописать их в админке при добавлении товара. Like не нужен, в mysql завезли же поддержку json полей, искать можно так: select * from `products` where json_unquote(json_extract(`attributes`, '$."factory"')) = 'Восход'
>>1788552https://laravel.com/docs/7.x/queries#json-where-clausesDB::table('products')->where('attributes->factory', 'Восход')->get();Или ты думаешь что json лучше не хранить в mysql? Как тогда лучше поступить, какую струкуру бд выбрать, чтобы без json обойтись?