Платформа 3V/Показатель/Справочник VS Показатель
Определения
Для того, чтобы выбрать объект, наиболее подходящий для хранения ваших данных, необходимо проанализировать исходные данные на количество полей, характеризующих уникальную запись.
По результатам анализа выбираем объект:
Справочник - способ хранения данных, при котором уникальную запись характеризует одно поле.
Показатель - способ хранения данных, при котором уникальную запись характеризует два или более полей (комбинации этих полей).
Другими словами, справочник - это аналог обычной таблицы (плоской таблицы), а показатель - аналог сводной таблицы (пивота, кросс-таблицы).
Примеры
Данные, представленные ниже, необходимо хранить в справочнике, так как все записи в таблице уникальны по одному полю "Товар" (Характеристики: Цвет и страна производитель могут повторяться для различных товаров):
Товар | Цвет | Страна производитель |
---|---|---|
Стул | Красный | Россия |
Стол | Желтый | США |
Шкаф | Белый | Франция |
Если в текущие данные добавить информацию о двух магазинах (ИКЕА и МебельТоп), в которых можно купить все эти товары, то в этом случае уникальность строки будет определяться не единственным полем "Товар", а комбинацией полей "Магазин" и "Товар":
Магазин | Товар | Цена | Количество |
---|---|---|---|
ИКЕА | Стул | 100 | 10 |
ИКЕА | Стол | 250 | 7 |
ИКЕА | Шкаф | 500 | 7 |
МебельТоп | Стул | 150 | 15 |
МебельТоп | Стол | 370 | 4 |
МебельТоп | Шкаф | 620 | 5 |
Такие данные можно представить и в виде показателя:
Магазин | Стул | Стол | Шкаф | |||
---|---|---|---|---|---|---|
Цена | Количество | Цена | Количество | Цена | Количество | |
Икеа | 100 | 10 | 250 | 7 | 500 | 7 |
МебельТоп | 150 | 15 | 370 | 4 | 620 | 5 |
Показатель, в свою очередь, будет построен на справочниках:
Магазины |
---|
ИКЕА |
МебельТоп |
Товары |
---|
Стул |
Стол |
Шкаф |
Факты |
---|
Цена |
Количество |
При этом, справочники "Товары" и "Магазины" будут являться измерениями и отображаться в блоке "Справочник показателей", а элементы справочника "Факты" будут называться фактами и отображаться в блоке "Справочник фактов". Такое распределение полей по измерениям и фактам возможно при текущих значениях Цены и Количества. Рассмотрим еще один пример.
Допустим, что стул в ИКЕА может продаваться как по цене 100, так и по цене 130, но количество стула по второй цене такое же, как и по первой цене - 10:
Магазин | Товар | Цена | Количество |
---|---|---|---|
ИКЕА | Стул | 100 | 10 |
ИКЕА | Стул | 130 | 10 |
ИКЕА | Стол | 250 | 7 |
ИКЕА | Шкаф | 500 | 7 |
МебельТоп | Стул | 150 | 15 |
МебельТоп | Стол | 370 | 4 |
МебельТоп | Шкаф | 620 | 5 |
При таких данных набор полей "Магазин" и "Товар" не является уникальным для каждой строки таблицы, в данном случае необходимо учитывать еще одно поле - "Цена". Таким образом, при построении показателя измерениями будут являться справочники "Магазины", "Товары" и "Цены", а фактом - единственный элемент "Количество" в справочнике "Факты".
Вывод
Любые данные можно представить в виде справочника, однако, рекомендуется использовать показатель в случае, если:
1. При анализе исходных данных можно определить набор полей, которые будут явно определять уникальность строки.
2. Справочник имеет достаточно большое количество атрибутов, при котором скорость работы с ним значительно снижается. При больших объемах данных для сохранения производительности лучше использовать показатель.
3. Необходимо устранить проблему возможных дублей строк.