Ну кривая же структура, ёлки-палки...Akina, чтобы не было таких претензий, я написал предысторию. Я понятия не имею как правильно (информации о об этом в прикладном плане нет), по этому делал как получится, я даже только потом узнал, что это кто-то называет это EAV моделью, а то что мне нужно реализовать оказывается называется фасетный поиск, прикладной информации о котором тоже нет )
То как я делаю сейчас мне не нравится. В данном коде фасеты собираются вручную и никак не пересчитываются. Выгляди как кривой костыль.