Skip to content

Модель четырехсторонней таблицы - Помощь 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. Примеры

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

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