Dans le cas proposé, il n'y a que trois tables ce qui permet de créer un seul contexte A-B-C
Donc aucun intérêt.
Supposons que
A est une table de vendeurs
B est une table agrégée des ventes par Année
C est une table de détail des ventes
D est une table des produits
Les contextes ont pour objectif de choisir entre 2 ou plusieurs chemins possibles
Ex :Aller de A à D en passant B ou C
A-B-D
A-C-D
Une requête sélectionnant les objets vendeurs, produits, montant
pourrait prendre aussi bien les deux chemins.- En définissant les contextes ANNEE et DETAIL
- En définissant les incompatibilités Tables/Objet (exemple Date et Mois incompatibles avec la table annuelle B)
- En définissant l'objet Montant en utilisant la fonction @AgregateAware mentionnant les tables de la plus agrégée vers la plus détaillée :
AgregateAware(B.Montant, C.Montant)
Lecontexte sera choisi automatiquement sans poser la question à l'utilisateur selon la logique suivante :
Aucun objet issu de la table Détail n'est demandé Montant peut donc être ramené de la table agrégée.
Tout ceci n'ayant rien à voir avec la problématique d'Adrien (utiliser deux fois une table code libellé) ce dernier doit utiliser les alias.
Partager