J'utilise le modèle de liste d'adjacence pour créer des catégories, et cela fonctionne parfaitement. Lorsque je récupère des articles dans une certaine catégorie (par exemple l'électronique), je souhaite également récupérer les articles dans les sous-catégories (par exemple électronique-> caméras, ou même électronique-> caméras-> objectifs de caméra).Conception de base de données d'un système de catégories arborescentes
La façon dont je le fais maintenant est de tirer de la DB tous les identifiants de catégorie des sous-catégories de l'électronique, et de trouver tous les articles avec un category_id dans cette liste.
Cela me semble très inefficace et prend beaucoup de temps, car cela pourrait entraîner de nombreuses requêtes pour récupérer ces sous-catégories. Une autre façon d'y parvenir est d'avoir tous les articles associés à l'arbre de la catégorie entière (par exemple un article sur les objectifs de la caméra sera également associé aux catégories caméra et électronique dans la table MANY_MANY), et quand je récupère tous les articles en électronique, il apparaîtra aussi.
Cela ajouterait beaucoup de données redondantes à la base de données, car je devrais stocker 3 ou 4 catégories pour chaque article. En outre, cela compliquerait des actions comme le déplacement d'un article vers une autre catégorie.
Est-ce la bonne façon de procéder? Ou y a-t-il un moyen meilleur/plus simple auquel je n'ai pas pensé?
Toute aide appréciée!
La façon dont vous le faites maintenant sonne parfaitement bien, surtout par rapport à la seconde méthode que vous décrivez. –