BonBackLink Posté 10 Septembre 2012 Partager Posté 10 Septembre 2012 Bonjour, je suis en train de dévelloper un guide de produits. Les produits sont classés par catégories, chaque année il y a bien sur un nouveau guide avec de nouveaux produits et parfois même des nouvelles catégories. Je suis parti sur l'option ou les produits sont rangées avec un id, l'année et divers champs. Une table catégories affecte une catégorie à chaque produit. Lors d'une requête je sors les produits ayant l'année demandée et la catégorie demandée. Mais je me dit lorsqu'il y aura plusieurs années la table va être énorme. est ce que l'on ne peut pas optimiser les tables ? En les scindant par année par exemple cela permettrai de chercher uniquement dans la table correspondant à l'année. Mais cela oblige à créer une nouvelle base chaque année. Qu'en pensez vous ? Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 10 Septembre 2012 Partager Posté 10 Septembre 2012 Tu vas probablement vite te rendre compte qu'il manque pas mal de choses dans ta structure. En particulier, les catégories ont souvent besoin d'une hiérarchie plutôt que juste une liste, un produit peut souvent être dans plusieurs catégories (et/ou une catégorie peut être dans plusieurs catégories "mères"). Ce n'est pas beaucoup plus compliqué, mais ça ajoute une paire de tables. Concernant ta question, tu ne nous donnes aucune indication du nombre d'articles/catégories. Avec des index correctement établis (et utilisés), la taille de la base de devrait cependant pas changer grand chose. Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
BonBackLink Posté 10 Septembre 2012 Auteur Partager Posté 10 Septembre 2012 Merci pour ta réponse. Pour être plus précis il y aura 100 à 500 articles par an pour environ 10 catégories. Un article appartien à une seule catégorie. On peux rechercher un article une dizaine d'année avant l'année actuelle. J'avais pensé a faire une catégorie année et que les catégries soient une sous catégorie. Mais cela oblige chaque année à créer les catégories. Vu la taille de la table je pense qu'il ne faut peux être pas trop se casser la tête, mais je me demande si l'on ne peux pas plus optimiser qu'une simple liste d'articles classés par ID. A plus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 10 Septembre 2012 Partager Posté 10 Septembre 2012 C'est tout petit comme base ça, tant que tu as un index qui intègre correctement l'année ça ne devrait vraiment poser aucun problème. Je ne sais pas si des produits/catégories restent d'une année à l'autre, mais si c'est le cas, une table catégories, une table produits, et une table de jointure (colonnes: année, id catégorie, id produit) pourrait être une bonne solution... Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 10 Septembre 2012 Partager Posté 10 Septembre 2012 je penche pour la table de jointure de jacques a évoqué, et comme il le dis, ta base, c'est tout petit, elle ne va pas vite augmenter, 500 produits par an, j'ai des tables avec plusieurs millions de lignes, et pas de problèmes de perfs, tu en es très loin Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 11 Septembre 2012 Partager Posté 11 Septembre 2012 Bonjour, Je suis d'accord avec Jcaron. Soit tu mets l'année dans ta table de produits, soit tu éclates cette colonne en la mettant dans une table de croisement, Catégorie - Année - Produit. Vu tes données, avec les index bien placés, tu n'as aucune raison d'avoir des lenteurs. Lien vers le commentaire Partager sur d’autres sites More sharing options...
BonBackLink Posté 12 Septembre 2012 Auteur Partager Posté 12 Septembre 2012 (modifié) Merci, pour les informations. C'est toujours bon de savoir que l'on est sur la bonne voie et que l'on ne va pas le regertter plus tard. Juste par curiosité quel est l'intéret de la table de jointure ? En fait dans mon système la jointure se fait directement dans la table produit qui contient un numéro de catégorie qui la fait pointer vers la catégorie adéquate de la table de catégories. Une table de jointure c'est intéressant si la table produit a de nombreux champ, cela evite de lire toute la table produits pour extraire les produits qui appartiennent à une categorie ? En lisant uniquement une table de jointure plus légére ? est ce bien cela ? Merci. Modifié 12 Septembre 2012 par BonBackLink Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dadou Posté 12 Septembre 2012 Partager Posté 12 Septembre 2012 C'est pour les produits qui restent plusieurs années ou qui font partis de plusieurs catégories, ça évite de dupliquer plusieurs fois le même produit Lien vers le commentaire Partager sur d’autres sites More sharing options...
BonBackLink Posté 13 Septembre 2012 Auteur Partager Posté 13 Septembre 2012 Merci les gars, je viens de comprendre ce qu'était une table de jointure. Toujours super cool pour les conseils en dévellopement webmaster hub, et vous venez de le prouver encore une fois. Merci a plus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant