EcommerceDEV. Développement, optimisation et sécurisation des sites de commerce électronique.
arrowAccueil arrow Analyse arrow Besoins arrow Modèle relationnel de données d’un catalogue de produits
Lundi 8 sept 2008
Nom d'utilisateur     Mot de passe      Conserver       Mot de passe perdu ?  Inscription
Menu
Accueil
A propos du site
Carte du site
Moteur de recherche
Nouvelles
Contactez-nous
Evénements
- - - - - - -
Analyse
Conception
Optimisation
Programmation
Sécurité
Produits/Services
Aug 01 2006
Modèle relationnel de données d’un catalogue de produits Version imprimable Suggérer par mail
Appréciation des utilisateurs: / 4
FaibleMeilleur 
Analyse - Besoins
Ecrit par Kamal AOUDA   
01-08-2006
Modèle relationnel de données d’un catalogue de produits

Dans cet article nous reproduisons un sous-ensemble du modèle relationnel de données d’un site de commerce électronique. La sous-partie reproduite ci-dessous permet de structurer et de stocker les données d’un catalogue de produits.

Voici les spécifications qui ont régit la conception du Modèle Relationnel de Données en question :

* Les catégories de produits peuvent contenir plusieurs sous-catégories avec un niveau d’imbrication illimité (autrement dit la profondeur de l’arbre des catégories n’a pas de limites. De manière réflexive, chaque (sous)catégorie peut contenir un nombre illimité d’autres (sous)catégories).
* Les spécifications préalablement citées s’appliquent également aux produits.
* Le prix d’un produit peut varier dans le temps et on doit pouvoir garder une trace sur toutes ces variations.
* Des articles complémentaires (appelés options dans le diagramme) peuvent être associés à chaque produit selon le principe du cross selling. Cela signifie que lorsque le client ajoute un produit à son panier d’achat le site lui propose dynamiquement une liste d’articles complémentaires qui pourraient l’intéresser. Une même option peut être associée à plusieurs produits et vice versa (relation de plusieurs à plusieurs des deux côtés).
 

 

Modèle Relationnel de Données d'un site de commerce électronique (sous-ensemble relatif au catalogue de produits)

 

Table Category

Champ Type de données (SQL server) Taille Description
CategoryID int 4 Identifiant Unique de chaque catégorie
Name varchar 25  Nom de chaque catégorie. C'est ce nom qui va apparaître sur les interfaces du site web.
Description varchar 100  Description de la catégorie (pour une meilleure lisibilité du MRD).
DisplaySeq smallint 2  Séquence d'affichage (il s'agit de l'ordre d'apparition d'une catégorie sur l'interface du site web).
CategoryParentID int 4  Catégorie de rattachement (nous rappelons que le rattachement se fait par le biais d'une relation réflexive d'une occurrence de la table catégorie vers une autre occurrence de cette même table). 

Table Products

Champ Type de données (SQL server) Taille Description
ProductID int 4 Clé primaire de la table (identifiant unique de chacune de ses occurrences).
Name varchar 25 Nom du produit tel qu'il apparaît sur les interfaces du site.
DisplaySeq smallint 2 Séquence d'affichage indiquant l'ordre d'apparition du produit sur les interfaces du site web.
ParentProductID int 4 Produit de rattachement (nous rappelons que le rattachement se fait par le biais d'une relation réflexive d'une occurrence de la table catégorie vers une autre occurrence de cette même table). 
CategoryID int 4 Clé externe de la table Category. Permet de rattacher un ou plusieurs produits à une catégorie.
ProductGroupID int 4 Permet de grouper les produits.
Display smallint 2 Indique si le produit doit apparaître ou ne pas apparaître sur l'interface.
ShortDescription varchar 50 Description concise du produit.
LongDescription varchar 500 Description détaillée du produit.
ImageName varchar 50 Chemin de l'image du produit (nous n'allons pas stocker l'image au format binaire mais seulement l'emplacement où elle se trouve).

Table ProductPrice

Champ Type de données (SQL server) Taille Description
ProductID int 4 Identifiant du produit
Price decimal 9 Prix du produit
StartDate datetime 8 Date de début de validité du prix (nous rappelons que les prix varient dans le temps).
EndDate datetime 8 Date après laquelle le prix n'est plus valide.

Pour pouvoir associer un produit à plusieurs catégories il faut ajouter une table de jonction permettant de lier la table produit à la table catégories (relation de plusieurs à plusieurs des deux côtés). La clé primaire de cette table est le résultat de la concaténation de la clé primaire de la table produits avec celle de la table catégorie. A noter que cette table de jonction n'apparaît pas sur le MRD.

Table de jonction ProductCategoryMap

Champ Type de données (SQL server) Taille Description
ProductID int 4 Clé externe de la table produit
CategoryID int 4 Clé externe de la table catégorie

Table Option Table

Champ Type de données (SQL server) Taille Description
OptionID int 4 Clé primaire de la table option
Name varchar 100 Nom de l'option tel qu'il apparaît sur l'interface

Table ProductOptions Table

Champ Type de données (SQL server) Taille Description
UniqueID int 4 Identifiant unique
OptionID int 4 ID de chaque option (clé externe)
ProductID int 4 ID du produit auquel l'option est associée
OptionValue varchar 100 Prix réel de l'option (lorsqu'elle n'est pas achetée avec un autre produit principal)
ExtraCost money 8 Prix bonifié de l'option (lorsqu'elle est achetée avec un autre produit principal)
Dernière mise à jour : ( 06-11-2006 )
< Précédent   Suivant >
UML - Modéliser un site e-commerce
UML - Modéliser un site e-commerce

Du cahier des charges au code, ce livre fait état des meilleures pratiques de modélisation avec UML. Toutes les étapes de conception sont décrites, abondamment illustrées et expliquées dans une étude de cas qui porte sur un site de commerce électronique.

 

Lien vers le livre sur le site d'Eyrolles

 

Critiques du livre

« Tous les diagrammes d'UML ne sont pas utilisés, et l'auteur a pris le parti de n'en traiter que la moitié, insistant plus particulièrement sur les diagrammes de classe et de séquence. Ceci n'est aucunement handicapant, bien au contraire. L'organisation du livre et les nombreux schémas et diagrammes clairs le rendent très agréable à lire et ne noient pas le néophyte sous des concepts théoriques et abstraits ». Jérôme


« On peut regretter que l'exemple choisi n'utilise pas les bases de données. En effet l'auteur a choisi d'illustrer la programmation du panier qui par définition ne stocke rien de manière permanente. C'est dommage car le lien entre classes d'analyse et relations en base de données est intéressant et essentiel pour bien comprendre le lien entre analyse et programmation ». Rédaction de devoloppez.com

 

 

Références
 

Pascal Roques
Langue : Français Éditeur : Eyrolles (10 septembre 2002)
Collection : Les cahiers du programmeur
ASIN : 2212110707
 

Moteur de recherche
Recommander ce site
Collaboration
Téléchargements
Derniers événements
Aucun événement
Sondages

Vos connaissances sur UML sont :

  
Blogs Ecommerce
Blog de capitaine commerce
top

Ce site a été crée avec le CMS Mambo. Un logiciel gratuit disponible sous licence GPL.

Copyright Ecommerce DEV 2006.

Hosted by SiteGround