Платформа 3V/Показатель/Справочник VS Показатель

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Определения

Для того, чтобы выбрать объект, наиболее подходящий для хранения ваших данных, необходимо проанализировать исходные данные на количество полей, характеризующих уникальную запись.

По результатам анализа выбираем объект:

Справочник - способ хранения данных, при котором уникальную запись характеризует одно поле.
Показатель - способ хранения данных, при котором уникальную запись характеризует два или более полей (комбинации этих полей).

Другими словами, справочник - это аналог обычной таблицы (плоской таблицы), а показатель - аналог сводной таблицы (пивота, кросс-таблицы).

Примеры

Данные, представленные ниже, необходимо хранить в справочнике, так как все записи в таблице уникальны по одному полю "Товар" (Характеристики: Цвет и страна производитель могут повторяться для различных товаров):

Товар Цвет Страна производитель
Стул Красный Россия
Стол Желтый США
Шкаф Белый Франция

Если в текущие данные добавить информацию о двух магазинах (ИКЕА и МебельТоп), в которых можно купить все эти товары, то в этом случае уникальность строки будет определяться не единственным полем "Товар", а комбинацией полей "Магазин" и "Товар":

Магазин Товар Цена Количество
ИКЕА Стул 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. Необходимо устранить проблему возможных дублей строк.