Bonjour à toutes et à tous,
je souhaite avoir votre avis sur le cas de modélisation suivant (quel serait selon vous le schéma relationnel idéal ?) :
Situation : le contexte est celui d'une arborescence de questions pour au final déboucher sur une offre du catalogue. Donc on a 1 parcours qui est lié à N questions. Chaque question est liée à N réponses (Par exemple : Question 1 " Quelle est votre couleur préférée ?" => R1 = "bleu" ; R2 = "rouge" ...). Une fois l'ensemble de l'arborescence de question parcourue, l'idée est de récupérer les différentes réponses sélectionnées, et en fonction de la combinaison de réponses retourner l'offre associée.
La situation simple que j'ai envisagée (mais qui n'est pas évolutive, donc mauvaise) : une table qui associe une combinaison de réponses à une offre (voir ci dessous)
Réponse 1 -- Réponse 2 -- Réponse 3 -- Id_offre
15 -- 18 -- 51 -- 25
Avec cette solution, je sais qu'à la combinaison de réponses (15,18,51) est associée l'offre n°25.
Problème, si j'ajoute une nouvelle question dans mon arborescence, la table ne tient plus car il manque une colonne...
2e solution : une string que l'on aurait construit selon une certaine syntaxe pour aboutir à une offre (voir ci-dessous)
Réponse --- Id_offre
"Q1:15-Q2:18-Q3:51" --- 25
Ainsi, une fois les paramètres récupérés à la fin du questionnaire, je construis la string selon la syntaxe arrêtée et je fais un select where Réponse = la string.
Cette solution offre l'avantage d'être assez souple, mais j'ai l'impression que ce n'est pas très bien modélisé...
Qu'en pensez-vous ? Existe-t-il une conception évolutive et plus performante (j'imagine que oui )
Merci à celles et ceux qui voudront bien m'apporter un peu d'aide
Sephi
Partager