Оформление
Модель четырехсторонней таблицы - Помощь FineReport | Разработка отчетов | Использование отчетов | Учебные пособия
Модель четверной таблицы (химия)
1. Обзор
1.1 История вопроса
На предприятии существуют сложные иерархические отношения,пользователи разных уровней имеют разные разрешения на работу с данными, и можно надеяться, что при просмотре бизнес-данныхпользователи разных уровней могут просматривать данные только в рамках своих собственных разрешений.
Оригинальное решение: используйте таблицу с широким диапазоном разрешений для записи информации о разрешениях, которыми обладает пользователь в различных измерениях, и настройте разрешения строк в каждой таблице бизнес-данных.
Примечание: В примерах, приведенных в этой статье, используются размеры бренда и региона для демонстрации процесса настройки разрешений, пользователи могут изменять размеры в соответствии с реальным сценарием.
Пример таблицы ширины разрешения показан ниже:

Процесс настройки разрешений для исходного сценария показан на следующем рисунке:

1.2 Описание проблемы
Оригинальный сценарий имеет следующие проблемы в реальном сценарии:
- Избыточность данных: между пользователями и разрешениями измерений существует связь "многие-ко-многим", и в таблице разрешений много избыточной информации.
- Таблицы с широким разрешением нелегко настраивать динамически: если добавлено новое измерение, имеется n различных значений измерения, а текущее количество строк в таблице с широким разрешением равно m, то в таблицу с широким разрешением нужно вставить не более m * n записей.
1.3 Решения
Мы предлагаем модель "четверной таблицы", которая разделяет таблицу разрешений на таблицу информации о пользователе, таблицы нескольких измерений и таблицы разрешений измерений для независимого хранения информации о разрешениях пользователя в различных измерениях.
По сравнению с оригинальной схемой, модель "четырехстороннего стола" имеет следующие основные корректировки:
1) Разделите таблицу разрешений, т. е. откажитесь от исходной таблицы разрешений и создайте заново "Таблицу информации о пользователе", "Таблицу измерений" и "Таблицу разрешений измерений".

****2)****Используйте "Таблицу информации о пользователе", "Таблицу измерений" и "Таблицу разрешений измерений" для построения модели "Четырехмерной таблицы" вместе с "Таблицей бизнес-данных". Процесс построения модели показан на следующем рисунке:

2. Операционные шаги
2.1 Подготовка данных
Перед настройкой разрешений на строки пользователям необходимо заранее подготовить следующие типы таблиц данных:
1) Таблица информации о пользователе: содержит такие поля, как имя пользователя, причем значение поля имени пользователя уникально.
2) Таблица измерений: содержит поля измерений с уникальными значениями полей измерений.
(3) Таблица разрешений измерений: содержит такие поля, как имя пользователя, измерение и т. д., в которых хранится информация о правах пользователя на измерение.
4) Таблица бизнес-данных: содержит поля, такие как измерения, и хранит фактические бизнес-данные, относящиеся к этому измерению.
2.2 Моделирование
1) Создайте следующие два типа ассоциаций, подробности см. в разделе: Настройка ассоциаций.
- Свяжите таблицу "User Information Table" с таблицей "Dimension Permission Table" с отношением 1:N для записи информации о разрешениях различных измерений, принадлежащих пользователям.
- Свяжите "Dimension Table" с "Business Data Table" с отношением 1:N для последующего запроса бизнес-данных.
2) Задайте поле, в котором находится вошедший в систему пользователь.
3) Откройте разрешение "Component Data" для "Dimension Table" и "Business Data Table", подробнее см. в разделе: Public Data Component Data Permission.
4) Настройте права доступа к строкам в "Таблице измерений", чтобы получить измерения, к которым имеет доступ вошедший в систему пользователь. По корреляции запросите данные в соответствующем измерении в таблице бизнес-данных. Наконец, вы можете увидеть данные пересечения нескольких измерений.
3. Динамическая настройка разрешений на строку
Организационная структура, функциональные отделы и должности предприятия будут часто меняться в процессе работы, как настроить права доступа к данным для изменившихся частей?
3.1 Новые измерения
Модель "Четырехмерные таблицы" удобна для расширения измерений. При добавлении нового измерения пользователям необходимо один раз настроить соответствующие ассоциации и права доступа к строкам в добавляемой таблице измерений, после чего система автоматически примет данные пересечения нескольких измерений.
Выполните следующие действия:
1) Подготовьте "Таблицу размерностей" и "Таблицу разрешений размерностей".
2) Создайте следующие ассоциации:
- Свяжите таблицу User Information Table с новой таблицей Dimension Permission Table с помощью отношения 1:N.
- Свяжите таблицу измерений с соответствующей таблицей бизнес-данных в отношениях 1:N.
3) Один раз настройте права доступа к строкам в добавленной таблице измерений. Как показано на следующем рисунке:

3.2 Добавление новой таблицы бизнес-данных
При добавлении новой таблицы бизнес-данных не нужно настраивать права доступа к строкам, достаточно связать ее с соответствующей таблицей измерений.
Например: добавьте новую "Таблицу бизнес-данных XXX", которая логически связана с "Таблицей региональных измерений", а затем свяжите ее с "Таблицей региональных измерений". Как показано на следующем рисунке:

4. Примеры
Между руководителями компании, региональными супервайзерами и членами региональных команд существует древовидная система взаимоотношений, и пользователям необходимо назначать различные разрешения в зависимости от размеров магазина.
В результате руководитель компании может видеть все данные, региональный директор - данные соответствующего региона, а члены региональной группы - только свои собственные данные. Более подробную информацию см. в разделе: Назначение многоуровневых разрешений.
