ym88659208ym87991671
Добавление индексов | Документация для разработчиков
Skip to main content

Добавление индексов

Для классов, входящих в агрегат (корень и элементы), а также классов-справочников можно добавить индексы.


Имеется возможность добавить простые (состоящие из одного свойства) и составные (состоящие из нескольких свойств) индексы. Порядок свойств в индексе имеет значение: следует указывать свойства в порядке от высокоселективного к низкоселективному.


Для добавления индекса:

  1. Выберите в модели требуемый класс.

  2. В окне Параметры "<Имя_класса>" в блоке Индексы нажмите кнопку Добавить.

    img
    Данное действие можно осуществить из контекстного меню, вызвав его с помощью правой кнопки мыши на выбранном классе. Откроется окно **Добавить индекс**.
    img
  3. В данном окне:

    • Установите флаг Уникальный (при необходимости) — указывает уникальность индекса.

    • В поле Добавить свойство выберите из выпадающего списка требуемое свойство или последовательность свойств. Предоставляемый список свойств зависит от указанной для класса стратегии наследования:

      • При стратегии наследования JOINED список свойств содержит набор свойств класса, для которого добавляется индекс.

      • При стратегии наследования SINGLE_TABLE список свойств содержит набор свойств класса, для которого добавляется индекс, а также свойсва классов, находящихся выше в иерархии наследования.


        Также имеются особенности отображения списка свойств для классов, имеющих связь с embeddable-классом и классов, имеющих внешнюю ссылку (reference) на другой класс:

        • При добавлении индекса для класса, имеющего ссылку на embeddable-класс, в списке свойств отображаются атрибуты данного embeddable-класса.

        • При добавлении индекса для класса, имеющего ссылку на другой класс, в списке свойств отображаются системные атрибуты entityid и rootEntityid:

          • если внешняя ссылка идет на корень агрегата, отображается атрибут .entityid;
          • если внешняя ссылка идет на элемент агрегата, отображаются атриуты .entityid и .rootEntityid;
          note

          Если в качестве индекса последовательно указать атрибуты .entityid и .rootEntityid, то такой индекс равносилен индексу на саму внешнюю ссылку (индекс на атрибут, являющийся именем внешней ссылки).

  4. Нажмите кнопку ОК, индекс отобразится в таблице блока Индексы.

Пример

Имеем модель данных:

img

В данной модели необходимо добавить индексы для класса PerformedOperation. Для этого в окне Параметры "PerformedOperation" в блоке Индексы необходимо нажать кнопку Добавить. Будет предоставлено окно Добавить индекс, где в поле Добавить свойство отображается следующий список свойств:

img

В данном списке:

  • для внешней ссылки request на корневой класс агрегата Request имеется атрибут request.entityid;
  • для внешней ссылки deposit на элемент DepositAccount агрегата Deposit имеется два атрибута: deposit.entityid и deposit.rootEntityid.

При этом, если в качестве индекса последовательно указать атрибуты deposit.entityid и deposit.rootEntityid, то такой индекс равносилен индексу на саму внешнюю ссылку deposit.

Обновлено 20 апреля 2022

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней