в моей модели данных хранилища я получил следующие отношения:
root_tbl - 1: n - entry_tbl - n: 1 - action_tbl
Есть еще несколько таблиц, но они охватывают основы. Хорошо, так что в основном один идентификатор из корневой таблицы имеет несколько наборов данных в таблице записей.
Пример данных:
root_tbl:
ID_root ; Country ; FK_User ; FK_Product
1 ; UK ; 23 ; 31
2 ; NL ; 42 ; 01
entry_tbl:
ID_entry ; FK_root ; FK_Action ; Duration
1 ; 1 ; 42 ; 200ms
2 ; 1 ; 10 ; 94ms
3 ; 1 ; 9 ; 300ms
4 ; 2 ; 10 ; 322ms
5 ; 2 ; 30 ; 100ms
Пока все хорошо ... с этой моделью данных довольно легко ответить на такие вопросы, как, например, сколько записей имеет "UK" как страну с действием "10" и так далее. Теперь я хотел бы поместить эти данные в таблицу фактов, но моя проблема связана с отношениями этих трех таблиц. Например, я бы использовал записи entry_tbl как факт, чем мне нужно было бы выбирать отдельный идентификатор каждый раз, когда я считаю страну, пользователя или продукт.
Таблица фактов будет выглядеть примерно так (просто представьте строки как внешние ключи):
fact_tbl:
ID ; FK_Action ; Duration ; Country ; User ; Product
1 ; 42 ; 200ms ; UK ; 23 ; 31
1 ; 10 ; 94ms ; UK ; 23 ; 31
1 ; 9 ; 300ms ; UK ; 23 ; 31
2 ; 10 ; 322ms ; NL ; 42 ; 01
2 ; 30 ; 100ms ; NL ; 42 ; 01
Это означает, что у меня будет много избыточных данных.
Есть ли способ обойти это решение? Таблица фактов будет содержать ~ 300-500 м строк.
Надеюсь, вы поняли мою точку зрения. Если что-то непонятно, не стесняйтесь спрашивать
С уважением, Томас