Как известно, таблица мостов - это мощный способ обработки измерений, которые принимают несколько значений, когда они связаны с гранью события измерения таблицы фактов.Проще говоря, таблица мостов позволяет вам разрешать отношения «многие ко многим» между измерениями.Цель состоит в том, чтобы создать модель данных, которая работает хорошо и проста для запроса.Во многих случаях звездообразная схема является обязательной, поскольку мы можем столкнуться с проблемами производительности.У меня есть следующие размеры:
Сотрудник может иметь много текущих функций: одна основная иостальные второстепенны.Сотрудник может иметь много текущих ролей.
Мой Факт будет записывать любые обновления в функции и роли любого сотрудника.Моя модель выглядит следующим образом:
Мой Fact_Employee будет содержать для конкретного сотрудника различные текущие записи, как показано ниже:
FactID EmployeeID FunctionID RoleID BIStartDate BIEndDate CurrentRecord
1 544 390 56 20/09/2018 NULL 1
2 544 390 11 03/10/2018 NULL 1
3 544 67 56 ... .... 1
4 544 67 11 ... .... 1
Для EmployeeID= 544, его текущие функции FunctionID = 390,67 и его текущий RoleID = 56,11, и я дважды связал BIStartDate и BIEndDate с DateDimension, как показано в моей модели выше.
Мои вопросы: В моем случае эторекомендуется использовать таблицы мостов между DimEmployee и DimFunction / DimRole?Если я хочу продолжать работать с моделью схемы, правильна ли / оптимизирована презентация моей модели?Как я могу отличить EndStartDate для функции от роли в моем факте, потому что, как мне кажется, я использую декартово произведение, и мой факт будет содержать очень большой объем данных?