0

Я новичок в моделировании размеров и OLAP. Я пытаюсь создать модель измерения для магазина.таблица фактов должна иметь меры из «слабого объекта» или полей только родительского объекта.

«заказ» таблица, имеющие столбцы:

'order_id(auto generated), total_order_cost, date, product_Set_Id'. 

«Product_set» таблица (содержит продукты, заказанные в каждом порядке т.е. несколько строк для каждого заказа, таблицы логически связаны колонке «product_set_id») имеет столбцы:

'product_set_id, product_name, quantity,Cost_per_quantity'. 

В таблице ER «product_set» таблица является видом слабого объекта, зависящего от таблицы «порядок».

Мои сомнения в таблице фактов случай 1: я должен добавить только 'order_id(fk)' и 'total_order_cost(as measure)' ==> в этом случае меры с «product_set» там не будет в таблице фактов.

или случай 2: я должен добавить 'order_id(fk)','product_set_id(fk)' and 'cost_per_quantity(measure), quantity(measure), total_order_cost(measure)' ==> в этом случае будет несколько строк для одной 'order_id' and 'total_order_cost'

Есть другие некоторые таблицы, как «клиент» и т.д., но у меня есть сомнения в выше.

Заранее благодарен!

ответ

0

Одно предложение, которое всегда было сделано, - создать суррогатный ключ на таблицах. Продажи моего факта таковы, что у него есть суррогатный ключ, который позволяет мне иметь данные о расположении, и каждая строка заказа определяется суррогатным ключом (который я действительно не использую, но это не проблема). Таким образом, вы можете следить за случаем 2.

Ответы на этот вопрос?

+0

Первое спасибо за ваш ответ. Итак, по вашему мнению, я должен удалить «total_order_cost» и сохранить «order_id» в таблице фактов? Замечательно, что «order_id» повторяется, поскольку в заказе может быть несколько продуктов? – TheRising

+0

привет в моем дизайне, что в данном случае, я объединил таблицу заказа и заказа в одной таблице FactSales. Вот почему используется клавиша aurrogate. И не сохраняйте total_order_cost (его меру). Но поскольку стоимость заказа останется прежней, я бы предложил, если вы можете разделить ее на строку заказа. определите свой total_order_cost как cost_per_quantity * количество – Faiz

+0

Еще раз спасибо, теперь исправьте меня, если я ошибаюсь, я понял ваш дизайн. Ваш подход хорош, поскольку он имеет больше смысла, но это похоже на альтернативное решение. Это своего рода «звездная схема». По-прежнему предполагаем, что мы не объединяем их в один стол, например, «схему снежинок» и отправляемся с двумя разными таблицами. или позвольте мне пересмотреть проблему как **, как мы должны вводить меры и FK в случае схемы снежинок. ** – TheRising