Как работать с таблицей Бридж в схеме Star - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь построить звездную схему из диаграммы E / R (OLTP-система), которая, кажется, содержит таблицу мостов.Порядок - это очевидная таблица фактов, а продукт - таблица измерений.Я не могу понять, как я могу сохранить таблицу моста, если модель должна быть звездообразной схемой.Как бы вы решили эти отношения, если мне нужно сохранить информацию о канале в модели?

enter image description here

1 Ответ

0 голосов
/ 02 февраля 2019

Зависит от того, как вы планируете использовать модель.

Если вам нужно только ответить на вопросы о продуктах и ​​каналах о существующих заказах, тогда вы можете вообще избежать таблицы мостов, потому что отношения M2M между каналами и продуктами могут быть разрешены через таблицу фактов («Заказы»):

enter image description here

(Огромное) преимущество этой конструкции - ее простота и удобство использования - она ​​очень интуитивно понятна для конечных пользователей.Это также быстро.

Недостатком модели является ее зависимость от заказов.Если заказы отсутствуют (т. Е. Нет заказов в таблице фактов), вы не сможете ответить на вопросы о взаимосвязях продуктов и каналов (например, «показать мне все продукты по назначенным каналам»).Если такие вопросы не важны и вам нужно только проанализировать существующие заказы, сделайте это просто.

Если вам нужно проанализировать отношения продукта с каналом даже без существующих заказов, то все будет сложнее.Один из подходов заключается в добавлении таблицы мостов следующим образом:

enter image description here

Преимущество этой схемы заключается в том, что отношения Канал-Продукт всегда доступны, независимо отзаказы.Также (все еще) просто анализировать заказы по продуктам.Недостатком является то, что теперь сложнее анализировать заказы по каналам, потому что теперь вам нужно пройти через таблицу мостов.Например, в инструментах конечного пользователя, таких как Power BI, вам необходимо установить «красное» соединение в двух направлениях, чтобы обеспечить распространение фильтра из измерения канала через мост к измерению продукта.Конечно, это выполнимо, но теперь конечные пользователи должны будут знать, что они делают - это уже не просто.

Еще один проект использует «таблицу фактов»:

enter image description here

Здесь вы можете легко запросить отношения Канал-Продукт без заказов (через таблицу фактов «Product-Channel», которая в основном показывает статус отношений), а также легко запрашивает заказы по продукту и каналу.Вы также можете "просверлить" такую ​​структуру, чтобы ответить на все виды сложных вопросов о продуктах без существующих заказов.Тем не менее, такой дизайн не так интуитивно понятен, как первый.

...