У меня есть таблица фактов, определенная в зерне порядка/линии. Каждый заказ относится к определенной вертикали, и каждая вертикаль имеет пользовательские атрибуты для описания своих данных. Я хочу, чтобы пользователи могли запрашивать все заказы независимо от вертикали, но при запросе данных, определенных по вертикали, можно фильтровать по вертикальным конкретным атрибутам.Таблица основных/пользовательских фактов
Вот как я планирую структурировать это, но хотел бы ввести, если это похоже на хороший дизайн или, пожалуйста, порекомендуйте другой подход, если это плохо.
Таблица фактов будет содержать VerticalKey FK. Они являются Dims я планирую сделать:
DimVertical (супертипом/ядро)
- VerticalKey (Auto Increment)
- OrderId (альтернативный ключ)
DimVertical-Car (подтип/обычай)
- VerticalKey (Идентификатор ключа от DimVertical.VerticalKey)
- CustomAttributeABC
- CustomAttributeDEF
- CustomAttributeGHI
DimVertical-Motorcyle (подтип/заказ)
- VerticalKey (Ключ от DimVertical.VerticalKey)
- CustomAttribute123
- CustomAttribute456
Для того, чтобы выполнить запрос по всем заказам объединение было бы просто сделать для супертипе DimVertical. Однако, когда я хочу запросить конкретную вертикаль, по вертикальным конкретным атрибутам, я бы просто включил необязательный размер подтипа.
Это похоже на хороший подход? Во-вторых, если это прекрасный подход, скажем, «OrderType» является атрибутом супер-типа, чтобы он мог перейти в измерение DimVertical, это плохо? Я сомневаюсь в этой причине, я знаю, что вы не должны иметь размер заголовка, который является чем-то вроде этого, но я не знаю, как еще поддерживать «пользовательский» способ поиска заголовка заказа.
Заранее благодарен!