Добавление индексов
Для классов, входящих в агрегат (корень и элементы), а также классов-справочников можно добавить индексы.
Имеется возможность добавить простые (состоящие из одного свойства) и составные (состоящие из нескольких свойств) индексы. Порядок свойств в индексе имеет значение: следует указывать свойства в порядке от высокоселективного к низкоселективному.
Для добавления индекса:
Выберите в модели требуемый класс.
В окне Параметры "<Имя_класса>" в блоке Индексы нажмите кнопку Добавить.
Данное действие можно осуществить из контекстного меню, вызвав его с помощью правой кнопки мыши на выбранном классе. Откроется окно **Добавить индекс**.В данном окне:
Установите флаг Уникальный (при необходимости) — указывает уникальность индекса.
В поле Добавить свойство выберите из выпадающего списка требуемое свойство или последовательность свойств. Предоставляемый список свойств зависит от указанной для класса стратегии наследования:
При стратегии наследования JOINED список свойств содержит набор свойств класса, для которого добавляется индекс.
При стратегии наследования SINGLE_TABLE список свойств содержит набор свойств класса, для которого добавляется индекс, а также свойсва классов, находящихся выше в иерархии наследования.
Также имеются особенности отображения списка свойств для классов, имеющих связь с embeddable-классом и классов, имеющих внешнюю ссылку (reference) на другой класс:
При добавлении индекса для класса, имеющего ссылку на embeddable-класс, в списке свойств отображаются атрибуты данного embeddable-класса.
При добавлении индекса для класса, имеющего ссылку на другой класс, в списке свойств отображаются системные атрибуты entityid и rootEntityid:
- если внешняя ссылка идет на корень агрегата, отображается атрибут .entityid;
- если внешняя ссылка идет на элемент агрегата, отображаются атриуты .entityid и .rootEntityid;
note
Если в качестве индекса последовательно указать атрибуты .entityid и .rootEntityid, то такой индекс равносилен индексу на саму внешнюю ссылку (индекс на атрибут, являющийся именем внешней ссылки).
Нажмите кнопку ОК, индекс отобразится в таблице блока Индексы.
Пример
Имеем модель данных:
В данной модели необходимо добавить индексы для класса PerformedOperation. Для этого в окне Параметры "PerformedOperation" в блоке Индексы необходимо нажать кнопку Добавить. Будет предоставлено окно Добавить индекс, где в поле Добавить свойство отображается следующий список свойств:
В данном списке:
- для внешней ссылки request на корневой класс агрегата Request имеется атрибут request.entityid;
- для внешней ссылки deposit на элемент DepositAccount агрегата Deposit имеется два атрибута: deposit.entityid и deposit.rootEntityid.
При этом, если в качестве индекса последовательно указать атрибуты deposit.entityid и deposit.rootEntityid, то такой индекс равносилен индексу на саму внешнюю ссылку deposit.