Alternative à un MCD

sdrogba Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -  
jee pee Messages postés 41553 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je vais être original... J'ai besoin d'aide pour modéliser une liaison bdd

Avant tout, ne pouvant pas donner l'exemple concret car régit par le secret pro, je vais détourner le problème.

Fonctionnellement, imaginons une fenêtre de paramétrage. Elle possède une première partie qui permet d'identifier la règle de notre paramétrage (index unique) et une seconde partie qui permet de définir les attributs de notre paramètre.
Je souhaite rajouter un attribut à ce paramètre. Cependant, cet attribut est un attribut composé à partir d'une autre table source.

Bon.... OK l'exemple n'est pas clair...
Prenons la composition d'une voiture et ses options. Ma fenêtre de paramétrage aurait une première partie permettant de définir un un modèle de voiture précis (marque, modèle ...) et une seconde partie permettant de définir des attributs (couleur, taille...)

Passons au modèle actuel :

Voiture(id_voiture, marque, modèle,couleur, taille)

Options(id_option, code_option, libelle_option)

En gros, aujourd'hui ma fenêtre permet seulement de définir une option par voiture... Alors, dans la description ci dessus, on ne voit pas de lien entre voiture et options, c'est volontaire !! Je travaille sur un vieux modèle de base qui n'a jamais été modélisé... Bref, je souhaite rajouter la possibilité de lier un pack d'options à une voiture

Pour moi :
- une voiture possède 0 ou plusieurs packs et un pack peut être lié à plusieurs voitures.
- un pack contient une ou plusieurs options et une options est contenu dans un ou plusieurs packs.

Voiture(id_voiture, marque, modèle,couleur, taille)
Pack(#id_voiture, #id_option)
Options(id_option, code_option, libelle_option)

En fait mon problème est simple, où stockeriez vous le code et le libellé de mon pack ?
En tant qu'attribut de la table voiture ? Table à part liée à la table Pack (Detail_pack(id_pack, libelle_pack)) ?

Après les questions, les premiers remerciements pour avoir eu le courage d'avoir lu le tout
Merci par avance.
A voir également:

3 réponses

jee pee Messages postés 41553 Date d'inscription   Statut Modérateur Dernière intervention   9 725
 
Salut,

Moi je verrais ces 6 tables

Voiture(id_voiture, marque, modèle,couleur, taille)
Pack(id_pack, libelle_pack)
Option(id_option, code_option, libelle_option)
LienPackOption(id_pack,id_option)
LienVoiturePack(id_voiture,id_pack)
LienVoitureOption(id_voiture,id_option)

Un conseil laisse tes noms de table au singulier "Options" ==> "Option" car toutes, quand elles contiennent plus d'une ligne, mériteraient le pluriel ;-)

cdlt
        un étranger, c'est un ami qu'on n'a pas encore rencontré.
1
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,


En fait mon problème est simple, où stockeriez vous le code et le libellé de mon pack ?
En tant qu'attribut de la table voiture ? Table à part liée à la table Pack (Detail_pack(id_pack, libelle_pack)) ?

Table à part.
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Perso, je ferais plutôt quelque chose comme ceci :

Voiture (id_voiture, id_pack, modèle...)
Pack (id_pack, nom)
RelPackOptions (id_pack, id_option)
Options (id_option, ...)

C'est le meilleur moyen de pouvoir placer des options dans différents packs, et de pouvoir attribuer un même Pack à plusieurs voitures.
Sachant qu'une voiture ne peut avoir qu'un seul pack d'options.

Xavier
0
jee pee Messages postés 41553 Date d'inscription   Statut Modérateur Dernière intervention   9 725
 
Salut,

"une voiture possède 0 ou plusieurs packs" donc l'id pack ne peut être dans la table voiture.
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011 > jee pee Messages postés 41553 Date d'inscription   Statut Modérateur Dernière intervention  
 
En effet j'avais raté cette info. Ça me paraît contre-intuitif, un Pack d'option regroupant en général de façon normalisée un ensemble d'options, quitte à ce que la voiture ait des options supplémentaires individuelles... Enfin ça doit dépendre des constructeurs, là où j'ai bossé c'était comme ça ^^'

En tous cas, merci pour la correction ;)

Du coup je +1 ta réponse qui est celle que j'aurais également donné si j'avais bien lu l'énoncé :p
0
jee pee Messages postés 41553 Date d'inscription   Statut Modérateur Dernière intervention   9 725 > Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention  
 
merci ;-)

de toute façon, attendu l'introduction "ne pouvant pas donner l'exemple concret car régit par le secret pro", l'exemple de tables données doit être bidon.
0