Примеры настроек ссылочной целостности
Пример 1. Использование «Частичного соответствия» при неполных данных в справочнике
Исходные данные:
Есть таблица фактов продаж, содержащая:
идентификатор товара (
ID товара);сумму выручки (
Сумма продаж).
Есть таблица товаров (справочник), где для каждого
ID товарауказано егоНазвание.
Проблема:
В таблице товаров отсутствуют строки для некоторых ID (например, новые товары ещё не завели в справочнике). При этом в таблице фактов продажи по этим товарам есть – суммы по ним хранятся, но связать их с названием нечем.
Что произойдёт при стандартной настройке «Полное соответствие»:
При построении отчёта (например, таблица с колонками «Название товара» и «Сумма продаж») будут показаны только те строки, для которых название найдено в справочнике. Строки фактов с отсутствующим названием исключатся из выборки.
Как результат – общая сумма продаж (Total) окажется занижена, потому что продажи по товарам без названия не попадут в расчёт.
Как помогает опция «Частичное соответствие»:
Если в настройках связи (между таблицей фактов и таблицей товаров) для ссылочной целостности таблицы фактов выбрать «Частичное соответствие», то:
в отчёт попадут все строки таблицы фактов, включая те, для которых нет соответствующей записи в справочнике товаров.
для таких строк в колонке «Название товара» будет отображаться пустая ячейка.
суммы по всем продажам (в том числе и по товарам без названия) учтутся при подсчёте общих итогов.
В результате общая сумма продаж отображается корректно, а аналитик видит, какие именно позиции требуют дополнения справочника (пустые ячейки в названиях).
Пример 2. «Частичное соответствие» для отображения всех товаров, даже с нулевыми продажами
Исходные данные:
Таблица товаров (справочник) содержит все необходимые названия товаров. В ней нет пропусков – для каждого товара есть
IDиНазвание.Таблица фактов продаж содержит столбцы
ID товараиСумма продаж, но в столбцеСумма продажотсутствуют записи для некоторых товаров (например, товар не был продан и ячейки остались незаполненными).
Проблема:
Если при построении визуализации использовать настройку «Полное соответствие», то в результат попадут только те товары, для которых в таблице фактов существуют строки с данными. Товары без продаж не будут отображены вовсе, что может быть нежелательно, например, при анализе ассортимента или контроле отсутствия продаж.
Как помогает опция «Частичное соответствие»:
Чтобы в визуализации отображались все товары, включая те, по которым продаж не было, для таблицы фактов в настройках связи необходимо выбрать опцию «Частичное соответствие». В этом режиме строки из таблицы товаров сохраняются в результате, даже если соответствующие данные в таблице фактов отсутствуют.
Дополнительно для корректного отображения показателей мы создадим DAX-меру, заменяющую пустые значения суммы продаж на ноль:
Продажи =
IF(
ISBLANK(SUM(fact_sales[amount])),
0,
SUM(fact_sales[amount])
)Результат в визуализации:
В результате при построении таблицы:
Общая сумма продаж по мере «Продажи» будет рассчитана верно (с учётом нулей).
Аналитик видит весь ассортимент товаров, включая те, которые ещё не продавались.
Пустые ячейки заменены на понятные нули, что исключает неверную интерпретацию.
Смотрите также
Формирование модели данных для визуализации
Настройка ссылочной целостности
На этой странице
Время чтения: 2 мин.
Нужна дополнительная помощь?