Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 663697
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T23:31:05+00:00 2026-05-13T23:31:05+00:00

I have a dimension (SiteItem) has two important facts: perUserClicks perBrowserClicks however, within this

  • 0

I have a dimension (SiteItem) has two important facts:

perUserClicks 
perBrowserClicks

however, within this dimension, I have groups of values based on an attribute column (let’s call the groups AboveFoldItems, LeftNavItems, OnTheFlyItems, etc.) each have more facts that are specific to that group:

AboveFoldItems: eyeTime, loadTime
LeftNavItems: mouseOverTime
OnTheFlyItems: doesn't have any extra, but may in the future

Is the following fact table schema ok?

DateKey   
SessionKey
SiteItemKey
perUserClicks 
perBrowserClicks
eyeTime
loadTime
mouseOverTime

It seems a little wasteful since only some columns pertain to some dimension keys (the irrelevant facts are left NULL). But… this seems like it would be a common problem, so there should be a common solution for this, right?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T23:31:06+00:00Added an answer on May 13, 2026 at 11:31 pm

    I’m generally in agreement with Damir’s answer on this, but because the fact table is very narrow in your particular case, there is still merit to Aaron’s advocation for keeping the NULLs.

    We have several star schemas in particular subject areas with multiple fact tables that share most (if not all) of the dimensions (conformed and internal). The limited-scope dimensions are not considered “conformed” across the enterprise, but they are what we would call “shared internal” dimensions.

    Now typically, if the data is loaded contemporaneously so that the dimension hasn’t changed, you can join both fact tables on the keys, but in general, of course, you cannot join two different star schemas on the dimension keys if they are surrogates in traditional slowly changing dimensions. In general, you have to join separate stars on the natural keys or “business keys” within the dimension and not on surrogates (except usually in the special case of the date dimension where it is unchanging and only has a natural key).

    Note that when you do join the two stars, you have to use a LEFT JOIN, in which case you WILL produce NULLs which you will still probably have to take account of – so you’re actually getting back to the original model you had with NULLs! 😉

    The benefit of the extra fact table is more obvious when your tables are wide with a smaller set of keys and the vertical partitioning of the data produces space savings as well as a cleaner logical model – this is especially true when the keys are only really shared up to a point – having one dummy key or NULL key is definitely not a good idea – this usually points to a dimensional modeling problem.

    However, as Aaron says, if you push it to extremes, you can have a single fact column in each fact table with shared keys, which means the key overhead dwarfs the fact cost and you really do end up in a disguised EAV model.

    I would also look to see if you are in Kimball’s situation of “too few dimensions”. Seems like you must have good dimensional attributes lumped into the SessionKey and SiteItemKey – but without seeing your entire model and requirements, it’s hard to say, but I would think you would have some user demographics in a low-cardinality or even snowflake dimension without the full Session or Site dimension.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have two-dimension array List<List<int>> boardArray How can I enumerate throw this array to
Background I have a dimension table that has a single record for each day.
If I have a dimension in Analysis Services where the base table has columns
i have a Dimension Table like this : my_Table pk1 Primary key pk2 Primary
I have an OLAP Basically there is a dimension that has parent-child relationship. So
I have two spaces (not necessarily equal in dimension) with N points. I am
I have a picture that I need to resize to a specific dimension and
I have a directory of bitmaps that are all of the same dimension. I
I have a two dimensional array that I need to load data into. I
I have a two-dimensional array (of Strings) which make up my data table (of

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.