У нас есть данные двух разных источников: некоторые поступают от клиентов, некоторые от разных поставщиков. В настоящее время мы физически «объединяем» эти данные в массивную таблицу с почти сотней столбцов, десятками тысяч строк и без формального разделения двух измерений. Следовательно, мы не можем использовать эту таблицу для многих.
Я собираюсь изменить этот беспорядок в правильную, но маленькую звездную схему.
Два измерения очевидны. Один из них, например, время.
Данные, предоставленные клиентом, предоставляют ряд значений фактов. Каждый поставщик может (или не может) предоставлять дополнительные значения фактов, которые соответствуют тем же измерениям.
Все эти данные факта имеют одинаковую гранулярность. Его можно назвать «разреженным», потому что мы не часто получаем информацию от всех поставщиков.
Вот моя дилемма.
Заполнена ли эта таблица фактов с несколькими нулями из разных источников?
Или это n + 1 таблиц фактов - одна заполняется от клиента, другие заполняются от каждого поставщика?
У каждого дизайна есть свои плюсы и минусы. Мне нужно второе мнение о выборе между «объединить» или «загрузить отдельно».
Заказчик предоставляет доход, стоимость, количество, вес и другие сведения, которые он знает о завершении транзакции.
Поставщик 1 предоставляет некоторые дополнительные сведения о некоторых транзакциях - весах, затратах, продолжительности. Другие транзакции не будут иметь никакого значения от одного поставщика.
Поставщик два предоставляет некоторые дополнительные сведения о некоторых транзакциях - объемы, длительности, длины, курсы иностранных валют. Другие транзакции не будут иметь никакого значения для второго поставщика.
Некоторые транзакции будут иметь обоих поставщиков. У нескольких транзакций не будет ни одного поставщика.
Одна таблица с нулями? Три стола?