Problème de MCD pour produits à mulitples options

Problème de MCD pour produits à mulitples options - SQL/NoSQL - Programmation

Marsh Posté le 18-02-2008 à 17:55:47    

Bonjour,

 

je travaille actuellement sur un petit projet pour un ami. J'ai un soucis au niveau de la conception de la base de données.
Pour vous expliquer rapidement, il s'agit de pouvoir personnaliser un siège de bureau en sélectionnant plusieurs options.
En gros, je possède une table "sièges", contenant la référence du modèle de base ainsi que diverses informations (nom, description, etc...).
Par contre, suivant les modèles, l'utilisateur peut choisir des options pour personnaliser son siège. Sur certains modèles, il pourra personnaliser le dossier, les accoudoirs, les roulettes, sur d'autres le dossier et le piètement. Ces caractéristiques (au nombre de 10 maximum, présentes ou non suivant le modèle) sont regroupées dans une table "caractéristiques".
Enfin, chaque caractéristiques offre donc une à plusieurs options à sélectionner. Par exemple, pour le siège "150P", le coussin d'assise (qui correspond donc à la table "caractéristiques" ) présente les options suivantes:

  • "sans coussins" (référence 204)
  • "Tec - Assise renforcée" (référence 229)
  • "Tec - Assise et dossier rembourrés" (référence 252)


Ces options sont sauvegardées dans une table "options".

 

Dans un 1er temps, je voyais un schéma ressemblant à ça:
http://lpsilmetz.free.fr/mcd01.gif

 

Mais je rencontre un problème dans la mesure où une option, par exemple "Tec - Assise renforcée" pourra être utilisée pour un autre siège.
Je pourrais alors lier directement la table "options" à la table "siege", avec une relation de type n,n. Mais je ne pourrais plus définir à l'avance les caractéristiques disponibles pour un certain siège.

 

En résumé:
Un siège possède plusieurs caractéristiques, qui possèdent elles-même plusieurs options.
Or, une caractéristique est présente sur plusieurs sièges, idem pour une option.
Enfin, les options disponibles pour une caractéristique ne sont pas les mêmes pour tous les sièges (certaines sont disponibles, d'autres non).

 

Je ne sais donc pas vraiment comment organiser au mieux les relations entre ces trois tables, et je compte sur vous pour me guider dans ma démarche.
Merci d'avance  :jap:


Message édité par forzayalta le 18-02-2008 à 18:44:25
Reply

Marsh Posté le 18-02-2008 à 17:55:47   

Reply

Marsh Posté le 19-02-2008 à 09:21:24    

Je me permet de faire un ptit up' pour ce sujet  :na:


Message édité par forzayalta le 19-02-2008 à 09:21:48
Reply

Marsh Posté le 19-02-2008 à 09:41:14    

Siege ---------------- O------------------- Caracteristiques
                                |
                                |
                                |
                           Options
 
Avec options qui a (FK_siege, FK_carac) pour PK ?


---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
Reply

Marsh Posté le 19-02-2008 à 09:46:49    

Oui, mais dans ce cas-là, comment puis-je savoir quelles options seront disponibles suivant le siège sélectionné?
Mon dernier MCD me donne à peu près ca:
http://lpsilmetz.free.fr/mcd02.gif
Pour les relations: 1,1 de "options" à "caracteristiques", 1,n dans l'autre sens, et enfin n,n entre "caractéristiques" et "siège".
 
 
Je peux ainsi définir à l'avance les caractéristiques d'un siège, et même utiliser une option plusieurs fois.
 
Le problème, c'est que si la caractéristique possède 10 options, je devrais toutes les utiliser, quel que soit le siège sélectionné.
Il me faut donc une astuce pour pouvoir choisir les options disponibles dans une caractéristique en fonction du siège choisit...


Message édité par forzayalta le 19-02-2008 à 10:00:20
Reply

Marsh Posté le 19-02-2008 à 11:28:07    

Une dernière version, mais je craint que ça ne soit pas valide, qu'il n'y ait une redondance de données...
Si quelqu'un pouvait me donner un avis  :sweat:  
 
http://lpsilmetz.free.fr/mcd03.gif

Reply

Marsh Posté le 19-02-2008 à 12:25:02    

La dernière, je pense que ca devrait être bon...
Si quelqu'un pouvait me donner un avis, j'ai l'impression de parler seul lol  :sweat:  
 
http://lpsilmetz.free.fr/mcd04.gif
 
Dans ce cas présent, je peux:

  • ajouter une caractéristique et la relier à plusieurs sièges
  • ajouter une option et les relier à plusieurs caractéristiques
  • sélectionner différentes options d'une même caractéristique selon les sièges


Je demande toutefois confirmation  :??:  
 
PS: la table "ad_siege" est reliée à une table "ad_type_siege", le modèle ci-dessus constitue donc un sous-ensemble du système d'information.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed