Мостовые таблицы VS Модель данных схемы звезды - PullRequest
0 голосов
/ 20 сентября 2019

Как известно, таблица мостов - это мощный способ обработки измерений, которые принимают несколько значений, когда они связаны с гранью события измерения таблицы фактов.Проще говоря, таблица мостов позволяет вам разрешать отношения «многие ко многим» между измерениями.Цель состоит в том, чтобы создать модель данных, которая работает хорошо и проста для запроса.Во многих случаях звездообразная схема является обязательной, поскольку мы можем столкнуться с проблемами производительности.У меня есть следующие размеры:

  • Сотрудник
  • Функция
  • Роль

Сотрудник может иметь много текущих функций: одна основная иостальные второстепенны.Сотрудник может иметь много текущих ролей.

Мой Факт будет записывать любые обновления в функции и роли любого сотрудника.Моя модель выглядит следующим образом: enter image description here

Мой 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 для функции от роли в моем факте, потому что, как мне кажется, я использую декартово произведение, и мой факт будет содержать очень большой объем данных?

...