Склад - снежинка - PullRequest
       24

Склад - снежинка

0 голосов
/ 17 октября 2011

Sales_fact:
Product_ID (FK)
Цена

Dim_Product
PRODUCT_ID
Product_Key
Описание

Проблема, с которой я сталкиваюсь, заключается в том, что делать, если у меня есть продукты, которые могут быть в нескольких категориях. Должен ли я просто повторить запись в Dim_Product для каждой категории?

Пример:

Таблица фактов:
Product_ID (FK): 1
Цена: 10,5

Dim_Product
Product_ID: 1
Product_Key: ABC
Описание: Ноутбук
Category_ID: 1

Product_ID: 1
Product_Key: ABC
Описание: Ноутбук
Category_ID: 2

Dim_Category:
Category_ID (FK): 1
Описание: HP

Category_ID (FK): 2
Описание: Toshiba

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

Для этой ситуации вам понадобится противоположность снежинке, которая является мостом между продуктом и категорией. Этот промежуточный стол также будет служить фактом, который покажет, какие продукты относятся к какой категории. Это продемонстрировано в главе 15 Ральфа Кимбалла «Инструментарий хранилища данных»

Product Category Bridge

0 голосов
/ 04 ноября 2011

Я бы подумал, что вы захотите либо переместить информацию о категории в dim_product, либо разрешить ссылку из таблицы фактов в таблицу категорий, либо иметь другой ключ product_id для каждой категории для тех, кто входит в несколько категорий. Как вы видите, нет никакой разницы между ноутбуком HP и ноутбуком Toshiba. На самом деле запрос будет возвращать оба, когда связаны, как ваши таблицы разработаны. Я бы порекомендовал создать разные product_id для каждого уникального ключа Product_key, Description, Category_ID.

...