probleme de filtre pour une sous-categorie de categorie - SQL/NoSQL - Programmation
Marsh Posté le 22-03-2010 à 12:14:39
je pense qu'il faudrait que je lie sous_categories à produits,... mais omment ds phpMyadmin?
Marsh Posté le 22-03-2010 à 15:02:08
J'ai déjà fait ce genre de classification, moi, j'ai fait une seule table pour les catégories :
Catégories :
- ID,
- Nom
- autres champs...
- ID parent (qui vaut NULL dans le cas d'une catégorie de premier niveau)
Inconvénient de cette modélisation, pour certaines requêtes, faut en lancer plusieurs et faire du récursif. Tu peux regarder dans mon soft icare (cf ma signature) les tables "KeyWords" et "CmpKeyWords" sont modélisées de cette manière.
Edit : ce que tu veux faire s'appelle modéliser une arborescence. 2 bon sites à ce sujet :
http://dev.mysql.com/tech-resource [...] -data.html
http://sqlpro.developpez.com/cours/arborescence/
Marsh Posté le 22-03-2010 à 16:54:47
pour éviter de faire du récursif et de lancer plusieurs requetes pour la méthode de Rufo tu peut utiliser la représentation intervallaire pour l'arborescence de tes catégories
cf : http://sqlpro.developpez.com/cours/arborescence/
Marsh Posté le 22-03-2010 à 19:55:06
merci les gars il va me falloir un petit tps pour ingurgiter sa donc je m'y met sa a l'aire des bonne piste
Marsh Posté le 23-03-2010 à 08:21:58
En restant simple, je pense que tu peux garder tes deux tables : catégorie et sous-catégorie, ca évitera de se prendre la tête plus tard. ça dépend du niveau après...
Tu changes dans la table produit : "cle_categorie" => "cle_ss_categorie" (met à jour les clefs étrangères).
Maintenant voici la nouveau requête à saisir pour afficher tous les produits de la sous catégorie 4:
Code :
|
Si tu veut tous les produits de la catégorie 6:
Code :
|
Peut être mettre des alias au passage.
Marsh Posté le 23-03-2010 à 09:26:46
hutarios a écrit : pour éviter de faire du récursif et de lancer plusieurs requetes pour la méthode de Rufo tu peut utiliser la représentation intervallaire pour l'arborescence de tes catégories |
c'est le 2ième lien que j'ai donné. T'as pas du lire mon post
Marsh Posté le 23-03-2010 à 09:28:35
discmat a écrit : En restant simple, je pense que tu peux garder tes deux tables : catégorie et sous-catégorie, ca évitera de se prendre la tête plus tard. ça dépend du niveau après...
|
Sauf qu'avec cette structure à 2 tables, il se limite à une arborescence à 2 niveaux pour sa classification. Avec les autres solutions, pas de limite (ou presque) => bien plus souple donc.
Marsh Posté le 24-03-2010 à 08:53:42
Tout à fait d'accord avec toi.
En gros si ton système est fait pour une bibliothèque : multitude de catégories et sous-catégories, il vaut mieux choisir le récursif.
Maintenant si c'est pour un exo "pourris" qui gère une boulangerie, que la BD est déjà faite et qu'on demande juste la requête d'affichage, 1 sous catégorie suffit.
Par contre en cas réel : soit prudent en manipulant la base de données : tes changements pourront engendrer des erreurs sur les applications développées par d'autres personnes. Mieux vaut se contenter de chercher la bonne requête d'affichage sans toucher le reste...
Marsh Posté le 24-03-2010 à 10:09:30
rufo a écrit : c'est le 2ième lien que j'ai donné. T'as pas du lire mon post |
oups, j'avais pas fait attention aux urls... miles excuses
Marsh Posté le 25-03-2010 à 11:30:51
Merci pour le débat les gars sa m'a aider.
Effectivement l'affichage en répétition, le plus simple sa a été l'ajout d'une cle_ss_categorie et aussi se qui m'a fait perdre du temps c'est que dans mon formulaire d'ajout des produit la liste de sélection des ss-categorie été relier a cette même table au lieu de la table produits.
Top cool se forum j'espère pourvoir quitter mon stade de nwebii et pourvoir avoir des discutions constructive comme vous
Marsh Posté le 22-03-2010 à 12:06:31
bonjour à tous
Je voudrait sa voir si quelqu'un a déjà eu le mm problème que moi, pour commencer je présente mon espace de travaille :
J'ai 4 table : - produits
- marques
- categories
- sous_categories
Elles sont comme sa :
produits : - id_produits .marques : - id_marque .categories : - id_categories .sous_categories : - id_sous_categories
- cle_marque . - nom - nom - cle_categorie ( car categoreie a ss-cat sont dans des liste sur la pae d'ajout et les liste sont liée)
- cle_categorie - nom
- model
- marque
Maintenant le probleme :
Je souhaite afficher un produits specifique d'une sous categories alors je tape ceci :
SELECT marque.nom, produit.model,
FROM produit, marque, categories, sous_categories
WHERE cle_marque=id_marque AND produit.cle_categorie=id_categorie AND id_sous_categorie=4 AND id_categorie=12
Mais a se moment là j'obtien tous les produit de la categorie 12 et ils ont tous "id_sous_categorie=4" alors que sur ma page ajout produit un seul a eu 4 pour l'id_sous_categorie
Quelqu'un a une piste passe moi je bloque lol
db-h aka Newbiiz