Bonjour,
Je suis entrain d'essayer de modéliser une nouvelle problématique que je rencontre actuellement.
J'ai une table de fait qui permet de gérer des commandes, quand les commandes sont passées le client effectue une ou plusieurs déclarations :
- Question : Ma commande est bleue / Réponse : OUI
- Question : Ma commande est neuve / Réponse : OUI
Avant de valider la commande, on vérifie cette déclaration
- Question : Ma commande est bleue / Contrôlée : OUI
- Question : Ma commande est neuve / Contrôle : NON
On constate donc sur cette commande un écart sur la question "Ma commande est neuve".
Dans un premier temps, j'ai fusionner les deux tables de questions et de réponses dans une seule dimension.
Maintenant je dois intégrer l'analyse des résultat sur ma table de fait. Le problème est que l'on peut avoir plusieurs questions en fonction du type de commandes et que les questions peuvent évoluer rapidement.
J'avais donc imaginé ajouter des clés sur ma table de fait pour l'ensemble des questions :
- ma_commande_neuve_déclaré_id
- ma_commande_est_bleue_déclaré_id
- ma_commande_neuve_vérification_id
- ma_commande_est_bleue_vérification_id
Cette solution me semble pas super car elle va multiplier le nombre de colonnes sur ma table de fait. De plus, comment gérer automatiquement l'ajout d'une nouvelle question ?
j'avais également penser à faire une dimension qui va regrouper l'ensemble des valeurs questions / réponses possibles :
id / test 1 / valeur / test 2 / valeur / test 3 / valeur / etc
Le problème reste en cas de changement, il faudra recalculer l'ensemble des valeurs possibles.
Pour moi, la solution la plus simple serait de pouvoir avoir toutes les déclarations dans une dimension (questions_déclarés_id sur la table de fait et questions_vérification_id) voir de créer une autre table de fait qui regroupe les résultats des tests ?
Quelque chose du genre :
Table de fait (clé groupe de contrôlé) -> Table passerelle (Clé commande / Clé test_déclaré / Clé test_contrôlé / Date Début / Date Fin / Actif (si jamais une autre vérification remplace la première) -> Dimension avec les valeurs de tests / résultats
Si cette solution est la plus viable, cela ne pose pas de problème faire une jointure sur la table de fait principale et la table passerelle pour obtenir les résultats ?
L'objectif final est de pouvoir voir pour chaque commande les questions qui comportent le plus d'erreur tout en gérant une problématique d'évolution des questions fréquente.
Si vous avez des idées la dessus, je vous en remercie grandement.
Merci
Partager