0

J'ai conçu une table de faits qui stocke les faits pour une dimension de date spécifique et un type d'action tel que créer, mettre à jour ou annuler. Les faits peuvent être créés et annulés une seule fois, mais mis à jour plusieurs fois.Deux ou plusieurs comptes similaires sur la table de faits dans la modélisation dimensionnelle

myfact 
--------------- 
date_key 
location_key 
action_type_key 

Cela me permettra d'obtenir un compte pour toutes les mises à jour effectuées, toutes les nouvelles créées pour une période et une région précise par la dimension de l'emplacement.

De plus, j'ai également 2 comptes pour chaque fait, c'est-à-dire le nombre de personnes, le nombre de bâtiments. Il n'y a pas de relation entre ceux-ci. Et je voudrais interroger sur combien de faits ayant un nombre spécifique, comme combien ont 10 bâtiment, combien ont 9 etc.

Quel serait le meilleur design de table pour ceux-ci. Fondamentalement, je vois les options suivantes, mais je suis ouvert à entendre de meilleures solutions.

  1. ajouter les comptes comme référence info dans la table de faits comme people_count et building_count

  2. ajouter une dimension pour chacun d'entre eux qui stocke les options valides, c.-à-people dimension qui stocke une key et un nombre et building dimension qui stocke un key et un nombre. Le principal fait aura un people_key et un building_key

  3. ajouter une dimension pour le compte à ceux-ci est utilisé aussi bien pour les personnes et le nombre de construction, à savoir count dimension qui stocke une key et un compte générique. Le principal fait aura un people_count_key et un building_count_key

+0

"mais mise à jour plusieurs fois" Ce n'est pas une table de faits appropriée. C'est une sorte de tableau récapitulatif. Une table de faits appropriée est insérée uniquement. Pourquoi n'utilisez-vous pas simplement une table de faits appropriée? Pourquoi mettez-vous à jour les comptes récapitulatifs? –

+0

Pourriez-vous expliquer un peu plus - les tables de faits ne sont généralement pas mises à jour (sauf dans certains cas particuliers). Qu'est-ce que c'est censé compter? Comment les gens se rapportent aux bâtiments? –

+0

L'information intéressée est le nombre de fois qu'un enregistrement a été créé, le nombre de fois où l'enregistrement a été mis à jour, etc., puis la combinaison avec l'autre dimension. Les gens ne sont pas liés à la construction, seulement intéressés par le groupement et la fréquence des occurrences de chaque compte. – mrjohn

Répondre

0

d'abord votre compte sont essentiellement des « dimensions » dans le sens le plus pur (vous pouvez penser à des dimensions comme un moyen de regrouper les enregistrements à des fins de rapports). La question est de savoir si la modélisation dimensionnelle est ce que vous voulez faire. Je pense que vous feriez mieux de considérer cela comme quelque chose d'une dimension implicite que d'ajouter des tables de dimension. Ce que cela signifie essentiellement, c'est que les tableaux de dimension n'ajoutent rien et créent des cas d'erreurs qui ne me semblent pas très utiles à moins que vous ayez besoin de suivre un tas d'informations liées aux nombres.

Si c'était moi j'ajouterais simplement les comptes à la table de faits, pas aux autres tables.