Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. COThis i a fictitious example, but the reason I couldn't use time as a join would be that a particular product is under a promotion during a time period when not all products are under the same promotion. Think of coupons, these are promotions which can apply to specific products, but they can also apply to more than one product at a time. I know I have to store promotions somewhere, but having a dimension for every promotion would not work. I know enough at this point to know that I don't want a fact table with 3000 columns, most of them pointing to a "Not under this promotion" record.
      singulars
    2. COEverything I read about star schema says that time is the FIRST dimension you include. And I don't think it would be 3000 columns point to promotion, which would obviously break first normal form for any relational model. It would be a single key to the promotion at hand for that sale. How many apply to a single sale?
      singulars
    3. COI hoped it wouldn't get to this. This was a fictitious example so of course logical holes would develop. How about...each POS entry can be a member of 1 or more named groups. There can be any number of these groups and are assigned by a grouping table out in the normal relational world. I want to be able to query the cube (built from the star schema) to find out what POS entries fall into groups: "Group 1", "Group 2" and "Group 3". And again, there can be any number of groups out there as they are custom created by managers or something like that.
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload