Quelle est la meilleure façon d'effectuer des opérations de définition à l'aide de DBIx :: Class? J'ai vu qu'une solution serait de créer une Source de Résultat basée sur ma requête, mais mes conditions seront définies par l'utilisateur et je ne sais pas si la meilleure réponse est de créer la source de résultats à la volée.Définir les opérations dans DBIx :: Class
Fondamentalement, je besoin de traduire ce type de requête à DBIC où code
, attr_name
et value
est défini par l'utilisateur:
SELECT pid FROM product WHERE code = 48
INTERSECT
(
(SELECT pid FROM attr WHERE attr_name = 'color' AND value = 'blue'
INTERSECT
SELECT pid FROM attr WHERE attr_name = 'size' AND value = 'big'
)
UNION
(SELECT pid FROM attr WHERE attr_name = 'color' AND value = 'green'
INTERSECT
SELECT pid FROM attr WHERE attr_name = 'size' AND value = 'small'
)
)
Lorsque vous dites défini par l'utilisateur, voulez-vous dire qu'il peut y avoir plus ou moins que les 9 placeholders ci-dessus? – cubabit
Oui, exactement. L'utilisateur peut définir de nombreux filtres en utilisant des paires de (nom_attribut, valeur) et des intersections et des unions. – nsbm