Если пользователь заказал один и тот же товар с двумя разными order_id;Заказы создаются с одинаковой гранулярностью даты-часа, например,
order#1 2019-05-05 17:23:21
order#2 2019-05-05 17:33:21
. В хранилище данных мы должны поместить их в две строки, подобные этой ( Вариант 1 ):
| id | user_key | product_key | date_key | time_key | price | quantity |
|-----|----------|-------------|----------|----------|-------|----------|
| 001 | 1111 | 22 | 123 | 456 | 10 | 1 |
| 002 | 1111 | 22 | 123 | 456 | 10 | 2 |
Или просто поместите их в один ряд с агрегированным количеством ( Вариант 2 ):
| id | user_key | product_key | date_key | time_key | price | quantity |
|-----|----------|-------------|----------|----------|-------|----------|
| 001 | 1111 | 22 | 123 | 456 | 10 | 3 |
Я знаю, поставлю ли order_id
в качестве вырожденногоразмерность в таблице фактов должна быть вариант 1 .Но в нашем случае мы не хотим сохранять order_id.
Также я однажды прочитал статью, в которой говорится, что, когда все измерения отфильтрованы, в таблице фактов должна быть только одна строка данных.,Если это утверждение верно, выбор будет Option 2 .
Есть ли принцип, на который я могу сослаться?