Я разрабатываю приложение базы данных, в котором данные будут меняться с течением времени. Я хочу сохранить исторические данные и позволить своим пользователям анализировать их с помощью служб SQL Server Analysis Services, но я изо всех сил пытаюсь придумать схему базы данных, которая позволяет это сделать. Я придумал несколько схем, которые могли бы отслеживать изменения (в том числе опираясь на CDC), но затем я не могу понять, как превратить эту схему в работающий BISM в рамках SSAS. Я также смог создать схему, которая прекрасно транслируется в BISM, но в то же время она не обладает историческими возможностями, которые я ищу. Существуют ли какие-либо устоявшиеся передовые практики для выполнения подобных вещей?
Вот пример того, что я пытаюсь сделать:
У меня есть таблица фактов под названием «Продажи», которая содержит ежемесячные данные о продажах. У меня также есть обычная таблица измерений под названием «Клиенты», которая позволяет пользователям просматривать данные о продажах с разбивкой по клиентам. Между клиентами и торговыми представителями существуют отношения «многие ко многим», поэтому я могу создать справочное измерение «Ответственность», которое ссылается на измерение «Клиент», и справочное измерение «Представитель отдела продаж», которое ссылается на измерение «Ответственность». Теперь у меня есть факты о продажах, связанные с торговыми представителями цепочкой ссылочных измерений «Продажи» -> «Клиент» -> «Ответственность» -> «Торговый представитель», что позволяет мне видеть данные о продажах с разбивкой по торговым представителям. Проблема в том, что со временем меняются не только факты о продажах. Я также хочу иметь возможность вести историю того, какой торговый представитель был ответственным за клиента во время определенного факта продажи. Я также хочу знать, где находился офис торгового представителя во время конкретного факта продажи, который может отличаться от его текущего местоположения. Я также могу узнать размер организации клиента на момент определенного факта продажи, который также может отличаться от текущего. Я понятия не имею, как смоделировать это в соответствии с BISM.