Je crée un modèle dimensionnel sur un "système d'enregistrement d'appels", pour un service VoIP. Je vais vous montrer un petit exemple pour montrer ma question. Supposons que j'ai un fait qui représente un seul appel.Modélisation dimensionnelle - Requêtes sans faits
Et j'ai une dimension appelée Client, et une autre appelée Provider. (Prétendre qu'il existe d'autres dimensions, comme la date bien sûr, et etc ...)
(Dimension)Client ---> (Fact)Call <--- (Dimension)Provider
Avec cela, je serai en mesure de voir combien d'appels un client a fait, ou combien d'appels ont été envoyés par un fournisseur, et d'autres questions.
Et supposons qu'un client est associé à un fournisseur, et qu'un fournisseur peut avoir plusieurs clients.
Alors, voici la question. Hhow puis-je créer une requête comme: Quels clients chaque fournisseur a?
Il semble que ce soit une requête entre les deux dimensions. Je ne peux pas impliquer le fait à ce sujet, parce que si un client n'a jamais utilisé le service, il ne sera pas sur la table de faits d'appels, et il n'appliquera pas sur cette requête "Clients par fournisseur". Je pensais avec moi-même qu'une façon de le faire serait de créer une dimension Role-Playing-Dimension, une vue de la dimension Client et de l'ajouter directement à la dimension Provider, juste pour faire des requêtes comme celle-ci. Ce serait quelque chose comme ceci:
(Dimension)Client ---> (Fact)Call <--- (Dimension)Provider <--- (Dimension)View Client
Bien sûr, avec cette approche, l'utilisateur doit être très prudent pour ne emploient pas cette dimension Voir client avec la table de fait, car il ferait double emploi avec les lignes de fait.
Alors, est-ce l'une des situations où j'ai besoin d'utiliser les fameuses tables de faits sans faits?
Quelle est la bonne façon de faire cela?
Merci!