Вопрос о дизайне хранилища данных - PullRequest
0 голосов
/ 08 октября 2010

В моей базе данных OLTP у меня есть макет, состоящий из преподавателей и студентов. Каждый студент может быть студентом любого количества преподавателей. Студент также может записаться на инструктора, но не обязательно записывать какое-либо обучение (урок).

Как лучше всего это смоделировать в хранилище данных? Если я создам таблицу измерений для уроков, инструкторов и студентов и таблицу фактов для уроков, которые изучали студенты, это сработает, когда преподаватель хочет посмотреть, какие уроки взял ученик.

Однако, как преподаватель увидит, сколько учеников зарегистрировано с преподавателем, но еще не взял урок?

В моем OLTP у меня есть таблица «многие ко многим» (InstructorStudents), которая связывает каждого ученика с еще одним инструктором. В базе данных OLAP это не подходит.

Какая схема будет наилучшей в этом случае? Много ли многим будет уместно в этом случае? Я не могу сохранить список учеников, на которых зарегистрированы преподаватели, в таблице учеников, поэтому я чувствую, что необходима другая таблица измерений, но не могу понять, что в ней должно содержаться.

Ответы [ 3 ]

1 голос
/ 26 октября 2010

Если факт представляет собой транзакцию, у вас есть два разных факта: регистрация и уроки.Всегда есть много путей, но, возможно, вам нужны две таблицы фактов.Они могут иметь одинаковую размерность, за исключением того, что таблица регистрации будет иметь измерение Class (имя класса, имя инструктора и т. Д.).Таблица «Уроки» будет привязана к измерению класса, но также и к измерению «Урок» (дата, используемый класс и т.Перспективы программирования и отчетности.

0 голосов
/ 11 ноября 2013

Вам нужна таблица фактов без фактов .Посмотрите на следующий ресурс, который ссылается на пример, близкий к вашей потребности

http://www.kimballgroup.com/1996/09/02/factless-fact-tables/

0 голосов
/ 14 октября 2010
...