0

La table des faits transactionnels de l'un des schémas en étoile doit répondre à des questions telles que La première application est l'application finale. Ceci est associé à l'un des processus métier. Est-ce une bonne idée de garder cela comme une partie de la table de faits avec un nom de colonne, IsFirstAppLastFlag. Il n'y a pas beaucoup de drapeaux pour créer une dimension séparée. De plus, ce drapeau (indicateur calculé) est essentiel dans l'écriture du rapport. Dans ce contexte, devons-nous le conserver dans Dimension ou dans Fait!Est-ce une bonne idée d'inclure des drapeaux dans la table de faits

Je suppose que la création de la dimension indésirable est pour ces drapeaux/colonnes de cardinalité faible qui ne sont pas si utiles peuvent le garder dans une dimension ?!

Répondre

1

Cela semble bien, tant que c'est un attribut du fait, pas d'une des dimensions. Dans certains cas, je pense que vous pourriez avoir une dimension en évolution lente dans laquelle il serait plus approprié de placer. Je souhaiterais que ce plan nécessite des mises à jour sur la table de faits, par exemple si vous aviez l'intention de signaler qu'un fait particulier était le plus récent pour un client. Si tel était le cas, il peut être préférable de conserver un numéro de transaction dans la table de faits et un «numéro de transaction le plus récent» dans la table de dimension et de fournir une méthode d'indexation pour récupérer efficacement le client le plus récent.

2

Cela dépendra de vos propres besoins, mais si vous aimez la vue la plus pure de la table de faits alors la réponse est non, ces champs ne doivent pas être inclus dans votre table de faits.

La table de faits doit inclure des clés de dimension, des clés de dimension dégénérée et des faits. IsStatusOne, IsStatusTwo, etc sont des attributs et, comme vous le suggérez à juste titre, seraient bien adaptés à une dimension indésirable en l'absence de ceux qui appartiennent à une dimension plus appropriée, par exemple, IsWeekDay serait adapté à la dimension "Date" table.

Vous pouvez commencer avec seulement quelques attributs "Is" dans votre table de faits, mais avec le temps vous aurez peut-être besoin de plus en plus de ces attributs, vous regarderez en arrière et souhaiteriez peut-être créer une dimension indésirable. Il est intéressant de noter que si vous utilisez des colonnes de bits pour vos drapeaux, il y a peu de différence de stockage en utilisant des drapeaux de 8 bits dans votre table de faits, mais avec une clé de dimension tinyint. valeurs de statut alors vous devriez utiliser la dimension indésirable pour améliorer les performances sur la table de faits, moins de stockage, de mémoire, plus de lignes dans une page, etc.

Personnellement, je les jonque