в моей модели данных для хранения я получил следующие соотношения:Таблица фактов - выберите отдельный?
root_tbl - 1: N - entry_tbl - п: 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
До сих пор так хорошо ... с этой моделью данных это довольно легко ответить на такие вещи, как, сколько записей есть «Великобритания» в стране с акции «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 м.
Надеюсь, вы поняли мою точку зрения. Если что-то не понятно, не стесняйтесь спрашивать
приветов Томас
Я задал свой вопрос ... Надеюсь, это даст лучший обзор! – user2428207
Хорошо, так в основном, что вы говорите, так это то, что денормализованная таблица фактов является общей? – user2428207
Я бы так не описал это - таблица фактов представляет собой набор показателей (факты) с соответствующей классификацией (размеры). То, что у вас есть, похоже на «вырожденное измерение», если для него нет отдельной таблицы измерений, но подсчет показателей в схеме звезд почти всегда будет требовать отдельного, если вы не подсчитываете количество фактов. Для этого в вашей модели вам придется денормализовать ее как одну строку на один идентификатор, поэтому один столбец будет содержать продолжительность для каждого возможного действия. Это было бы скорее подходом к датмарту - одинаково действительным, но не столь расширяемым. –