Gestion de produits - Site d'e-commerce

zllzn Messages postés 18 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 23 juin 2010 - 21 avril 2010 à 04:34
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 2 mai 2010 à 23:44
Bonjour,

Je suis actuellement en train de développer un panier d'achats pour sites d'e-commerce ASP.NET utilisant C#. Le problème étant que ce panier doit pouvoir s'adapter sur n'importe quel site. J'ai donc un problème avec la gestion de mes produits qui suit le même principe de portabilité.

Je ne sais pas trop comment gérer les options/caractéristiques d'un produit.
J'ai donc un table 'produits' contenant un id, un nom, un prix (pour faire simple). Je voudrais pouvoir lui associer des options comme une couleur ou une taille un poids, bref peu importe, je veux juste lui associer une caratéristique.
J'ai donc pensé créer un table 'options' qui contiendrait donc les différentes sortes de caractéristiques: taille, poids, couleur, etc... et à créer ces tables (couleurs, taille, ...) contenant des valeurs.

Ainsi dans ma table 'produits', j'ajoute la sorte de caractéristique à partir de la table 'options' et la valeur choisie de la caractéristique voulue.

Mon problème est multiple:
- comment faire si je veux associer plusieurs options à mon produit ?
- comment faire si tel produit n'existe que pour deux caractéristiques (par ex) alors que la table en contient une dizaine.

Je précise qu'il faut rester le plus générique possible. J'espère m'être fait comprendre.
Merci.
Zllzn
A voir également:

7 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 avril 2010 à 07:07
Salut,

La solution la plus générique et qui s'adapte à tout serait de faire une table produits contenant l'idProduit, le prix et le nom, et une table options contenant l'idOption, idProduit, typeOption et valeurOption.

Avec une telle architecture : peu importe le nombre d'options possibles (et le nombre de produits auxquels elles s'appliquent) : tu crée une ligne par option/produit.

Du style : tu as le produit stylo qui peut avoir une couleur différente alors ca te donne :
INSERT INTO produits (idProduit, prix, nom) VALUES (1, 10, 'stylo rouge')
INSERT INTO produits (idProduit, prix, nom) VALUES (2, 11, 'stylo bleu')

INSERT INTO options (idOptions, idProduit, typeOption, valeurOption) VALUES (1, 1, 'couleur', 'rouge')
INSERT INTO options (idOptions, idProduit, typeOption, valeurOption) VALUES (2, 2, 'couleur', 'bleu')


Maintenant, tu as le produit voiture qui peut avoir comme option une couleur, un nombre de siège, un nombre de porte, alors ca te donne :
INSERT INTO produits (idProduit, prix, nom) VALUES (3, 10000, 'renault scenic')
INSERT INTO produits (idProduit, prix, nom) VALUES (4, 11000, 'fiat punto')

INSERT INTO options (idOptions, idProduit, typeOption, valeurOption) VALUES (3, 3, 'couleur', 'rouge')
INSERT INTO options (idOptions, idProduit, typeOption, valeurOption) VALUES (4, 3, 'nbSieges', '5')
INSERT INTO options (idOptions, idProduit, typeOption, valeurOption) VALUES (5, 3, 'nbPortes', '5')
INSERT INTO options (idOptions, idProduit, typeOption, valeurOption) VALUES (6, 4, 'couleur', 'noir')
INSERT INTO options (idOptions, idProduit, typeOption, valeurOption) VALUES (7, 4, 'nbSieges', '4')
INSERT INTO options (idOptions, idProduit, typeOption, valeurOption) VALUES (8, 4, 'nbPortes', '3')


Tu as ainsi une architecture optimisée pour le stockage des données (par de champs vide, pas de données redondante).
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
1