L'histoire se passe entre deux tables : la table node et la table produit.
Dans la table node il y a la correspondance entre les produits et les rubriques aux quelles ils sont associés. Il y a aussi la correspondance entre les rubriques et leurs sous-rubriques.
Une de mes rubriques s'appelle " marque ", toutes les marques de la boutique sont des sous rubriques de cette rubrique ("marque"). Les produits selon leurs marques sont donc associés à ses sous rubriques ainsi qu'a la rubrique mère.
Ex :
Un produit P1 (id = 1) , une rubrique R1 (id = 2) et une sous rubrique SR1 (id = 3).
dans la table node il va donc y avoir de genre de tuple :
1 / "produit" / 2 / "rubrique" / 0 // association du produit à la rubrique mère
1 / "produit" / 3 / "rubrique" / 0 // association du produit à la sous rubrique
2 / "rubrique" / 3 / "rubrique" / 0 // association de la sous rubrique à la rubrique mère
Le produit peut aussi être associé à d'autre rubriques différentes de " marque ", pouvant contenir aussi des sous rubriques.
Ex ( en plus des tuples précédent) :
1 / "produit" / 4 / "rubrique" / 0 // association du produit à la rubrique mère
1 / "produit" / 5 / "rubrique" / 0 // association du produit à la sous rubrique
4 / "rubrique" / 5 / "rubrique" / 0 // association de la sous rubrique à la rubrique mère
Le schéma des tables dans ma base :
- la table produit :
- la table node :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 CREATE TABLE `produit` ( `produit_id` smallint(5) unsigned NOT NULL, `langue_id` smallint(2) unsigned NOT NULL, `produit_ref` varchar(20) NOT NULL, `produit_titre` varchar(255) NOT NULL, `produit_accroche` text NOT NULL, `produit_corp` text NOT NULL, `produit_prix` varchar(10) NOT NULL, `produit_reduction` varchar(10) NOT NULL, `produit_stock` smallint(3) unsigned NOT NULL, `accueil` tinyint(1) unsigned NOT NULL, `date_creation` date NOT NULL, `date_modification` date NOT NULL, `visible` tinyint(1) unsigned NOT NULL, PRIMARY KEY (`produit_id`), KEY `produit_ref` (`produit_ref`), KEY `produit_titre` (`produit_titre`), KEY `produit_prix` (`produit_prix`), KEY `produit_reduction` (`produit_reduction`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Mon souci c'est que j'aimerai trier selon les marques des produits mais je n'arrive pas à le faire dans une seul requête. J'espère t'avoir bien indiqué mes contraintes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE `node` ( `parent` smallint(5) unsigned NOT NULL, `parent_type` varchar(20) character set latin1 NOT NULL, `enfant` smallint(5) unsigned NOT NULL, `type` varchar(20) character set latin1 NOT NULL, `ordre` smallint(5) unsigned NOT NULL, PRIMARY KEY (`parent`,`parent_type`,`enfant`,`type`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Partager