Je crée un site de commerce électronique qui nécessite un outil de recherche à facettes afin que les clients puissent affiner la recherche de produits par catégories et classifications dans le même style que ebuyer.com et Newegg.com (Voir les menus à gauche) . J'ai tout d'abord plongé directement dans la conception d'une base de données qui ressemblait à une structure EAV (je ne savais pas ce que c'était à l'époque), cela semblait idéal pour créer des catégories illimitées, des sous-catégories et d'autres classifications de produits (couleur, taille, destinataire) que les clients pourraient utiliser pour trouver des produits spécifiques. Cependant, lorsque j'ai commencé à essayer de créer des requêtes SQL en utilisant les conditions AND
, j'ai réalisé que les requêtes simples normales devenaient beaucoup plus longues et complexes à écrire. Après avoir passé quelques heures à lire divers articles sur SO et des articles sur Google, je me suis rendu compte du cauchemar qui se présenterait si je continuais avec cette méthode.Structure de base de données pour une recherche à facettes
Question
Comment ont des sites tels que ebuyer.com et Newegg.com conçu leur recherche par facettes? Est-ce que j'ai manqué une méthode alternative ou est-ce qu'ils ont simplement pris une longueur d'avance avec une structure EAV? Je cherche à éviter les solutions d'entreprise comme Lucene/Solr.