IndexDef — различия между версиями

Материал из DevelopmenOnTheEdge
Перейти к: навигация, поиск
(Новая страница: «{{ElementType|com.beanexplorer.enterprise.metadata.model.IndexDef|да}} '''Индекс''' (IndexDef) — это определение индекса для т…»)
(нет различий)

Версия 16:30, 16 сентября 2014

Класс
IndexDef
Поддерживает документацию
да
Поддерживает extras
нет

Индекс (IndexDef) — это определение индекса для таблицы в базе данных. Элементы IndexDef расположены внутри определения таблицы в папке Indices. У индекса может быть имя, признак уникальности (unique) и набор колонок, которые отображаются в дереве проекта как дочерние элементы.

Длина имени индекса ограничена 30 символами, но обратите внимание, что в DB2 не удастся создать индекс с именем длиннее 18 символов. Также обратите внимание, что не все СУБД поддерживают функциональные индексы (смотрите определение колонки индекса).

Любые изменения индексов (включая удаление) считаются неопасными, поэтому выполняются без предупреждения при синхронизации со структурой. Любое изменение индекса при синхронизации приведёт к его уничтожению и повторному созданию.

Определения индексов записывается в yaml-файле [[Entity|представления] в секции indices внутри секции scheme. Примеры:

buildings:
 scheme:
   ...
   indices:
   - IDX_BUID_ID_KLADRCODE:
       unique: true
       columns:
       - ID
       - kladrStreetCode
       extras: kladr
   - IDX_BUILD_KLADR:
       columns: kladrStreetCode
       extras: kladr
       doc: значения могут быть не уникальны
   - IDX_BUILDINGS_NWK:
       unique: true
       columns:
       - buildingNo
       - lower(wing)
       - lower(letters)
       - kladrStreetCode
       extras: kladr
       doc: функциональный индекс с уникальными значениями