Accueil > Forum > > > > Gestion de produits - Site d'e-commerce
Gestion de produits - Site d'e-commerce
mercredi 21 avril 2010 à 04:34:07 |
Gestion de produits - Site d'e-commerce

zllzn
|
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
|
|
mercredi 21 avril 2010 à 07:07:03 |
Re : Gestion de produits - Site d'e-commerce

DARKSIDIOUS
|
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 :
Code :
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 :
Code :
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
|
|
mercredi 28 avril 2010 à 05:42:21 |
Re : Gestion de produits - Site d'e-commerce

zllzn
|
Salut,
Déjà merci pour ta réponse. On a finalement opté pour une solution similaire (En fait, on est en binome sur le sujet).
Le problème qui se pose maintenant est lorsque l'on est confronté à une option qui dépend d'une autre option. Par exemple, pour un t-shirt, si l'on en a un rouge qui ne peut qu'avoir les tailles M, L, XL et un t-shirt bleu qui lui ne peut qu'avoir XS, S, M, L. On a deux produits t-shirts mais avec des options différentes.
Ta solution consisterait à dire qu 'un t-shirt rouge et un t-shirt bleu sont deux produits différents. On aimerait éviter de faire ça justement, mais s'il n'y a pas d'autres moyens...
Pour l'instant, on a utilisé ta méthode.
Merci en tous cas.
|
|
mercredi 28 avril 2010 à 08:14:33 |
Re : Gestion de produits - Site d'e-commerce

DARKSIDIOUS
|
Salut,
Oui là en effet il vaut mieux avoir 2 produits. Mais tu peux faire une architecture un peu plus évoluées à ce moment là avec une table produit, une table optionsProduits (qui dans ton cas serait les couleurs) et une table sousOptionsProduits (qui dans ton cas serait les tailles) : la table sousOptionsProduits aurait une clé étrangère vers la table optionsProduits qui elle même aurait une clé étrangère vers la table produits.
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
|
|
vendredi 30 avril 2010 à 01:57:23 |
Re : Gestion de produits - Site d'e-commerce

zllzn
|
Salut,
Le problème est que si l'on fait comme tu as proposé est que l'on devrait créer une table optionsProduits pour chacune de nos options. Je veux dire par là que si la table optionsProduits contient les couleurs, cela marche pour des t-shirts par exemple, mais on ne sqit pqs à l'avance quels genres de produits ou quels genres d'options peuvent avoir ses produits.
Notre panier peut aussi bien contenir des habits que des pièces informatiques, que des frigos ou des posters. Du coup, la table optionsProduits serait différente pour chaque cas d'utilisation.
Pour l'instant, on gère ça avec des strings. Dans la table options produits, on a la taille, la couleur, etc ... et la table optionsValue qui contient l'id du produit, l'id de l'option (qui vient de la table optionsProduits) et une valeur en varchar.
Comme ça on peut mettre aussi bien "XS" que "190*100*50" (par exemple) pour la taille. Mais on peut aussi mettre "5 portes".
Le problème qui se pose alors est que l'on a aucun contrôle sur les valeurs saisies. On peut tout aussi bien saisir "5 portes" que "cinq portes" qui seront deux valeurs différentes.
|
|
vendredi 30 avril 2010 à 07:50:37 |
Re : Gestion de produits - Site d'e-commerce

DARKSIDIOUS
|
Salut,
C'est justement le but de la table des sousOptions d'éviter de stocker toutes les options dans une seule table avec autant de champs que d'options existantes !
Le principe est le même que pour la table des options : au lieu de stocker une option par champ, tu stocke une options par enregistrement. Ainsi peut importe le nombre d'options, tu n'a que 2-3 champs, et x enregistrements.
C'est à dire au lieu d'avoir :
TABLE Options (idOption, idProduit, Taille, Couleur, Marque, Longueur, Largeur, Hauteur, Profondeur, NombrePortes, NombreRoues, etc.)
Tu as :
TABLE Options (idOption, IdProduit, typeOptions, Valeur)
Et tu as autant de ligne que de type d'options par produit. Et si ca te suffit pas, tu fais une table des sous-options pour spécialiser un peu plus, sur le même principe.
Je te laisse réfléchir à comment agencer tout cà avec 3 tables (relation ternaire).
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
|
|
dimanche 2 mai 2010 à 23:24:50 |
Re : Gestion de produits - Site d'e-commerce

zllzn
|
Salut,
Pour la table optionsProduits, on avait qu'une option par enregistrement et non pas par champs.
Notre table optionsProduits, on a :
INSERT INTO (idProduit, nomOption, valeurOption) VALUES (15, "Couleur", "Rouge")
INSERT INTO (idProduit, nomOption, valeurOption)VALUES (46, "Taille", "L")
par exemple.
Ce qui me gene un peu, c'est que "Couleur" et "Taille" sont des Strings, enfin des varchar, et du coup ca laisse trop de liberte a l'utilisateur qui pourra aussi bien rentrer "coulleur", "color", "colour", enfin bref autant de termes plus ou moins juste qui designent le meme type d'option.
Aussi, j'ai pas vraiment compris ce que tu veux mettre dans la table sousOptionProduit.
|
|
dimanche 2 mai 2010 à 23:44:13 |
Re : Gestion de produits - Site d'e-commerce

DARKSIDIOUS
|
Salut,
C'est à toi de voir ce que tu veux : si tu veux quelque chose de générique qui s'adapte à tout, tu n'as guère le choix : soit tu stockes dans un champ de type VARCHAR les valeurs, soit tu crées autant de tables qu'il n'y a de types de valeurs possible (entier, chaîne, couleur, immatriculation, distance, code postal, etc. etc. etc.), mais ca va très vite devenir une usine à gaz, et surtout, tu ne pourras jamais tout gérer... donc à toi de voir.
Tu m'as dit que tu ne voulais pas différencier un tee-shirt rouge d'un tee-shirt bleu. Il te faut donc stocker quelque part qu'il existe un produit "tee-shirt". Que ce produit tee-shirt à une option principale "couleur", mais ils ont aussi des sous-options : la taille. Avec un niveau de 3 tables pour : 1/ le produit (tee-shirt), 2/ les options principales du produit (couleur de tee-shirt, marque de voiture, etc.), et 3/ les sous-options (taille de tee-shirt, modèle de voiture, etc.), ca devrait répondre à la plupart des produits tout en gardant un niveau d'optimisation en lecture qui soit assez bon. Tu peux rajouter plus de niveaux d'options si vraiment tu en as besoin, mais attention alors au nombre de jointures dans les requêtes et le nombre de données à gérer qui risque vite d'exploser !
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
|
|
Cette discussion est classée dans : table, site, gestion, options, produits
Répondre à ce message
Sujets en rapport avec ce message
problème avec une table [ par norman bates ]
Bonjour tout le monde j'ai un soucis voila j'ai fais mon site d'ecommerce sur mon pc en utilisant une base mysql et en php mais gros couac, le serve
[MCD] Multiples catégories de produits [ par Krasha ]
Bonjour à tous, Dans le cadre d'un stage je dois créer une base données pour un traiteur en ligne, malheureusement mon expérience sur les bases de do
créer table de classement joueurs [ par achraf06 ]
messieurs bonjourvoila je viens de créer mon site web dédié a pes 2009 ou j'organise des tournoi ect donc mon problème c'est que j'arrive pas a créer
suppression d'un champs et mise a jour des autres [ par djbenji81100 ]
Bonjour , je suis actuellement en pleine conception d'un site pour mon stage . j'utilise easy php pour coder creer le site et je dois donc gerer un
Je cherche un site qui explique l'utilisation de sql view [ par khaled001 ]
Bonjour, Je cherche des sites qui expliquent comment utiliser le logiciel sql-view. Cordialement
RAPPEL PROCEDURE STOCK ET AUTOINCREMENTATION [ par TOUFIKDEV ]
Bonjour, j'ai des lignes sur un fichier .txt "Classeur1.txt" a transférer vers une table "@TABLE1" de ma base "BDD" Donc la Bulk insert et la solutio
création de table [ par newagevitch ]
Bonjour je m'appelle Amine. j'ai besoin de votre aide et avant je vous explique mon cas. je suis étudiant en programmation sql. nous venons de finir
Besoin d'aide pour upgrade une table d'une DB avec une partie des champs d'un autre table dans une autre DB [ par Baihrava ]
Bonjour. pour mon travail, mais surtout mon plaisir, je developpe un jeu. j'emploie navicat 9.1.8 pro pour mes DB donc pour ce jeu j'emploie 2 DB diff
MySQL : insertion dans table avec clés étrangères [ par chatmi91 ]
Bonjour, Voilà j'ai créée une BD avec AnalyseSI que j'ai ensuite importé sous MySQL, jusque là no problem [^^happy13] . Il y a plusieurs tables avec
Insérer une variable à une table SQL . [ par caramel50 ]
Bonjour tout le monde ![^^amour] Voici mon problème : J'essaye d'inclure des données à une table sql à partir de variables php voici mon code : <?php
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|