|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 26 ![]() |
Bonjour à tous,
Ayant fait une recherche sur le forum, j'ai vu que l'on pouvait mettre plusieurs dates dans une même table de fait (date de création, date de livraison par exemple). Mon soucis est que ma commande peut passer dans une vingtaine de statut différents et pas toujours dans chaque statut. Est-ce que je dois inclure également mais 20 dates dans ma table de fait même si certaines dates ne seront jamais renseignée puisque la commande ne sera pas passée par ce statut ? Ou existe t-il une autre solution plus adéquat ? Merci Julien |
|
|
00
|
|
|
#2 |
![]() ![]() Consultant en Business Intelligence Inscription : juillet 2008 Messages : 950 ![]() |
Si tu as trop de dates ou de statuts tu peux garder une table d'historique avec un enregistrement par statut et par date, c'est plus simple.
Et aussi plus souple, si on rajoute un statut tu n'as pas à modifier la structure de la table. Après tout se fait en restit. |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 26 ![]() |
Donc ce sera tout de même une table de fait "historique" donc ? Cette table historique est liée juste aux dimensions "Temps" et "Statut des commandes" ?
Cela ne pose pas de problème si il y a rien de quantifiable dedans juste une date un statut ? Merci pour ta réponse. Julien |
|
|
00
|
|
|
#4 |
![]() ![]() Consultant en Business Intelligence Inscription : juillet 2008 Messages : 950 ![]() |
Oui c'est ça.
Il faut la lier à ta table de fait principale où tu as tes mesures. Evidemment il faut faire attention aux cardinalités en sql car tu peux multiplier facilement tes indicateurs. Mais je l'ai déjà mis en oeuvre et je trouve que c'est la meilleure solution pour ce type de problème. |
|
00
|
|
|
#5 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 812 ![]() |
A ce moment là on peut parler de table d'événements.
Il n'y a pas de faits mais un historique des événements de ta commande par exemple.
__________________
Pensez à la fonction Recherche |
|
|
00
|
|
|
#6 |
![]() ![]() Consultant en Business Intelligence Inscription : juillet 2008 Messages : 950 ![]() |
C'est en effet ce qu'on appelle une table de suivi d'événements, une table de faits sans faits dans la littérature.
Maintenant on peut aussi imaginer de rajouter un indicateur comme le solde de la commande, la durée ouvrable depuis le début de la commande, etc ... |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 26 ![]() |
Très bien, merci beaucoup
Je vais étudier cette solution qui me semble plus propre que d'ajouter 25 dates dans ma table de fait. |
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : mai 2011 Messages : 89 ![]() |
Bonjour,
Je me permet de relancer la discussion car mon problème, de ce que j'ai compris, est presque similaire à celui de Julioun. J'ai un datamart des ventes qui recense les commandes en cours de facturation et celles qui sont facturées. Le but est d'établir des rapports sur les commandes en carnet, les commandes facturées et l'ensemble des deux sur 2 mois glissants, appelé prise de commandes. J'ai donc une table de fait contenant des lignes de commandes. A chaque ligne de commande est associée plusieurs dates que les analystes ont besoin d'avoir dans leur rapport telle que la date de livraison souhaitée, la date de livraison planifiée, la date d'expédition planifiée, la date de livraison promise, etc... Dois-je relier chacune de ces dates en tant que clés étrangères dans ma table de fait à la clé primaire de la dimension Temps ? Ou bien dois-je récupérer ces dates directement depuis mes données sources et les mettre en champ date dans ma table de fait ? De manière générale, comment utilise-t-on la dimension Temps ? Merci pour vos suggestions |
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Inscription : septembre 2003 Messages : 623 ![]() |
En général je fais les deux.
Une clé vers la table date (à la granularité jour donc) et une copie de la date dans un autre champs (pour avoir la granularité seconde). Pour chaque date a stocker. |
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : mai 2011 Messages : 89 ![]() |
Encore une fois merci Jester.
En cherchant je me suis aperçu que je suis exactement dans la même situation que Pupuce31 (sauf que je n'ai pas de dimension commande) dans ce sujet : http://www.developpez.net/forums/d77...usieurs-dates/ Jester pour reprendre ce que tu dis je n'ai pas besoin de la granularité seconde. Mes dates sont au format JJ/MM/AAAA. Si j'ai bien compris, si mes dates vont servir pour être analyser par la suite en tant qu'axe, alors je relie les clés à la dimension Temps. Si elles ne sont qu'informelles, alors je les laisse en tant que champ Date dans ma table de faits. Je voulais rajouter que j'ai aussi le même problème avec des adresses. En effet chacune de mes commandes a deux adresses type d'adresse. Dois-je les renseigner en dur dans la table de faits ou bien mettre une clé étrangère lié à une table adresses ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com