3

относительно новая для хранилищ данных данных, которые так голые со мной.Конструкция хранилища данных - строка измерения с несколькими атрибутами

Это не совсем то, что я делаю, но я чувствую, что это хороший пример:

Скажем, у меня есть таблица размера продукта, который подключается к моей ProductSales таблице фактов. Каждая строка в dimProduct содержит все соответствующие данные для одного продукта (код, имя, описание и т. Д.), И существует около миллиона продуктов.

Теперь у меня есть требование хранить товарные категории на складе. Каждый продукт имеет несколько категорий, в среднем по 5.

Я должен дублировать целые строки в разделе «Размеры продукта» для каждой категории, в которую входит продукт, или я должен сжечь мою текущую звездную схему с помощью параметра dimCategory и таблицы ссылок dimProductCategory между двумя?

Я боюсь, что если я сделаю первый, моя таблица измерений будет более чем в 5 раз больше, и если я сделаю последнее, модель станет намного сложнее.

Любые мысли будут с благодарностью оценены.

Благодаря

Tim

+1

. , Хорошим ресурсом для моделирования размеров является «Инструмент инвентаризации хранилищ данных» Ральфа Кимбалла. Он обсуждает компромиссы между одним измерением и дизайном снежинки. –

ответ

1

Ну, для Неё Ваш вопрос довольно проницательный!

Если каждый из вашего продукта можно разделить на несколько любые категории (и каждая категория продукта содержит п количества), то мощность между Product и продуктом Category является много-ко-многим. Когда у вас есть много ко многим, прямое Снег Flakingне решение.

Но я думаю, что вы подразумеваете под снегом здесь, это использование таблицы ссылок между Category и Product. И, на мой взгляд, это правильный подход. Но я бы предпочел назвать эту таблицу как таблицу фактов .

Snowflaking is the solution for a one-to-many cardinality problem (например, 1 категория содержит несколько продуктов). Чтобы устранить многие из многих, вам потребуется Таблица фактов, в которой хранятся ключи как от Product.

Помните, что в случае, если ваши транзакционные данные, которые вы загрузить на свой ProductSales таблицу фактов, уже содержит как Category и Product детали, вы можете также хотите включать как идентификатор категории и идентификатор продукта в вашей ProductSales таблицы фактов. Вы делаете это, когда вам не нужно поддерживать какую-либо фиксированную связь между продуктами и категориями, а отношения связаны с инцидентами, которые происходят в реальном бизнесе.

Смежные вопросы