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