Hmmm...I'm trying to imagine why you want the isValidNumber in another level...and I'm not coming up with anything. Can you help me understand what your plan is there?
From my experience with levels, I would put things like country, state, and city is successive levels, e.g., going from coarse to fine items that define a location. This helps with grouping and drilling down into your queries.
Say...would it make sense to put the external_number and isValidNumber fields into the fact table (the external_number would then be known as a degenerate dimension, and isValidNumber would be a measure) and then have a "location" dimension (perhaps with the levels I just described)? In that way your location dimension would potentially be quite a bit smaller than the fact table (in terms of number of rows) because several phone numbers would most likely reference the same location.
Last edited by darrell.nelson; 12-06-2013 at 05:20 PM.
Reason: coarse, of course!
Java 1.7 (64 bit)
MySQL 5.6 (64 bit)
Windows 7 (64 bit)