La communauté ALL HTML c'est 58004 membres à ce jour dont 1 inscrits aujourd'hui et 29 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « Modélisation - Algorithmique »

Retrouvez les publications relatives à ces discussions dans notre rubrique algorithmique et méthodes.

Modelisation BD

liste des forums liste des discussions Participer à la discussion

Photo de manest Message publié le mardi 04 juillet 2006 à 00 h 52 par manest.
Bonjour

Je suis en train de modéliser ma base de données pour un site d'e-commerce relativement simple.
Je rencontre neanmoins un soucis.
Nous vendons du matériel de sport d'hiver (snow, ski, boot etc...). J'ai une table objet, contenant un id, une marque, une photo, un prix etc... bref les informations semblables à tous les objets.
Mais après, je dois également faire apparaitre les caractèristiques des differents types d'objet (un snow et une boot, ca n'a pas les mêmes caractèristiques). Ses caractristique serviront également pour faire une recherche avancé sur un produit. Il faut donc savoir quelles sont les caractéritiques disponible pour les snows en particulier par exemple.
J'ai donc pensé faire des tables carac_snow, carac_ski etc...
D'un je ne sais pas si c'est très propre (je ne pense pas vu que je n'arrive pas a le modèliser dans mon MCD) et de deux, si j'ai un jour besoin d'ajouter un type d'objet je dois creer une nouvelle table... je suis loin d'être spécialiste dans le domaine et je bloque donc un peu.

Auriez vous une suggestion et eventuelement un shema d'une base simple pour un site d'e-commerce vendant des objets relativement differents afin que je vois comment tout cela est fait.

Merci d'avance.
Photo de doula Message publié le dimanche 16 juillet 2006 à 17 h 32 par doula. D[;)]ula. :: Piano Service [ http://www.pianoservice.fr ] :: UCEM [ http://www.u-c-e-m.com ] :: Ere du Temps [ http://www.ere-du-temps.com ]
C'est tout simplement un héritage, tu as une table OBJET (MARQUE,PHOTO,PRIX,etc.) qui est lié aux tables spécifiques.
Pour résoudre l'héritage, il y 2 solutions :
1) ( la moins bien ,je trouve) Créer tatable OBJET de cette facon :
TABLE OBJET ( ID, MARQUE, PHOTO, PRIX , ID_SNOW, ID_SKI, ID_BOOT )
Ainsi quand tu veux rajouter un ski, tu auras :
OBJET ( 1 , 'Marque Cool' , 'ski_121.jpg' , 75 , '' , 4 , '' )

Le soucis de cette méthode est qu'il y a des champs non utilisés... si tu as beaucoup d'objets ca alourdi considérablement ta base.

2) Ne pas créer de table objet mais directement tes tables spécialisées :

TABLE SNOW ( ID , MARQUE , PHOTO , PRIX , CARACT_SNOW_1 , CARACT_SNOW_2, etc)
TABLE SKI ( ID , MARQUE , PHOTO , PRIX , CARACT_SKI_1 , CARACT_SKI_2, etc)
TABLE BOOT ( ID , MARQUE , PHOTO , PRIX , CARACT_BOOT_1 , CARACT_BOOT_2, etc)

Ainsi tu accèdes à la table qui te concerne et tu récupéères toutes les infos. Cela permet de pas avoir des tables trop grandes, et de ne pas avoir des champs non utilisés.


Voilà, je te conseille donc la 2ème méthod,e mais au moins désormais tu vois les possibilités qu'il te reste... A toi de faire le bon choix :)
Photo de PhilB Message publié le vendredi 21 juillet 2006 à 16 h 14 par PhilB.
Bonjour,

@Doula : Il y a effectivement de l'héritage dans l'air, mais la résolution ressemble plutot à ça :

Une table contenant toutes les caracteristiques communes :
TABLE OBJET ( ID, MARQUE, PHOTO, PRIX )

Et des tables spécifique à chaque familles reprenant leurs carractéristiques propres :
TABLE SNOW ( ID , CARACT_SNOW_1 , CARACT_SNOW_2, etc)
TABLE SKI ( ID , CARACT_SKI_1 , CARACT_SKI_2, etc)
TABLE BOOT ( ID , CARACT_BOOT_1 , CARACT_BOOT_2, etc)

Pour exploiter tous les articles tu utilises la table OBJET, pour les SKI il faudrait avoir une vue qui associe la table SKI et les articles de la table OBJET ayant les mêmes ID.

@+

Philippe
Photo de therockriders Message publié le jeudi 27 juillet 2006 à 11 h 32 par therockriders.
Bonjour, je pense que j'aurai fait de cette manière

TABLE TYPE_OBJET(ID, DESCRIPTION) qui répertorie les types d'objets (snow, boot, ski)
TABLE TYPE_PROPERTIES(ID, ID_TYPE, NAME) qui répertorie toutes les propriétés d'un type d'objet (marque pour un snow ou des ski, à lacet ou non pour des boots, largeur pour un snow, longueur pour des skis)
TABLE OBJECTS(ID, NAME, TYPE) qui répertorie tous les objets
TABLE PROPERTIES_VALUES(ID, ID_PROPERTY, ID_OBJECT, VALUE) qui associe pour un objet, une valeur à une propriété (ex: l'objet "snowboard1" possède une propriété "marque" qui a pour valeur "superSnow".

Cela permet de rajouter facilement des types d'objets avec différentes propriétés.

Je sais pas si c'est très clair

@+
Julien

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions