开发者

Two or more similar counts on fact table in dimensional modelling

开发者 https://www.devze.com 2023-01-17 09:16 出处:网络
I have designed a fact table that stores thefacts for a specific date dimension and an action type such as create, update or cancelled. The facts can be create and cancelled only once, but update many

I have designed a fact table that stores the facts for a specific date dimension and an action type such as create, update or cancelled. The facts can be create and cancelled only once, but update many times.

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

This will allow me to get a count for all the updates done, all the new ones created for a period and specify a specific region through the location dimension.

Now in addition I also have 2 counts for each fact, i.e. Number of People, Number of Buildings. There is no relation between these. And I would like to query on how many of the facts having a specific count, such as how many have 10 building, how many have 9 etc.

What would be the best table design for these. Basically I see the following options, but am open to hear better solutions.

  1. add the counts as reference info in the fact table as people_count and building_count

  2. add a dimension for each of these that stores the valid options, i.e. people dimension that stores a key and a count and building dimension that stores a key and a count. The main fact will have a开发者_C百科 people_key and a building_key

  3. add one dimension for the count these is used for both people and building counts, i.e. count dimension that stores a key and a generic count. The main fact will have a people_count_key and a building_count_key


First your counts are essentially "dimensions" in the purest sense (you can think of dimensions as a way to group records for reporting purposes). The question though is whether dimensional modeling is what you want to do. I think you are better off as seeing this as something of an implicit dimension than you are to add dimension tables. What this means essentially is that dimension tables add nothing and they create corner cases of errors I just don't think are very helpful unless you need to track a bunch of information related to numbers.

If it were me I would just add the counts to the fact table, not to other tables.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号