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

Материал из DevelopmenOnTheEdge
Перейти к: навигация, поиск
(Новая страница: «{{ElementType|com.beanexplorer.enterprise.metadata.model.IndexDef|да}} '''Индекс''' (IndexDef) — это определение индекса для т…»)
 
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{ElementType|com.beanexplorer.enterprise.metadata.model.IndexDef|да}}
+
{{ElementType|com.beanexplorer.enterprise.metadata.model.IndexDef|да|да}}
'''Индекс''' (IndexDef) — это определение индекса для таблицы в базе данных. Элементы IndexDef расположены внутри [[TableDef|определения таблицы]] в папке Indices. У индекса может быть имя, признак уникальности (unique) и набор [[IndexColumnDef|колонок]], которые отображаются в дереве [[Project|проекта]] как дочерние элементы.
+
'''Индекс''' (IndexDef) — это определение индекса для таблицы в базе данных. Элементы IndexDef расположены внутри [[TableDef|определения таблицы]] в папке Indices. У индекса есть имя, признак уникальности (unique) и набор [[IndexColumnDef|колонок]] (как минимум одна), которые отображаются в дереве [[Project|проекта]] как дочерние элементы.
  
 
Длина имени индекса ограничена 30 символами, но обратите внимание, что в DB2 не удастся создать индекс с именем длиннее 18 символов. Также обратите внимание, что не все СУБД поддерживают функциональные индексы (смотрите [[IndexColumnDef|определение колонки индекса]]).
 
Длина имени индекса ограничена 30 символами, но обратите внимание, что в DB2 не удастся создать индекс с именем длиннее 18 символов. Также обратите внимание, что не все СУБД поддерживают функциональные индексы (смотрите [[IndexColumnDef|определение колонки индекса]]).
Строка 6: Строка 6:
 
Любые изменения индексов (включая удаление) считаются неопасными, поэтому выполняются без предупреждения при [[Синхронизация|синхронизации]] со структурой. Любое изменение индекса при синхронизации приведёт к его уничтожению и повторному созданию.
 
Любые изменения индексов (включая удаление) считаются неопасными, поэтому выполняются без предупреждения при [[Синхронизация|синхронизации]] со структурой. Любое изменение индекса при синхронизации приведёт к его уничтожению и повторному созданию.
  
Определения индексов записывается в yaml-файле [[Entity|представления] в секции indices внутри секции scheme. Примеры:
+
Определения индексов записывается в [[yaml]]-файле [[Entity|представления]] в секции indices внутри секции scheme. Примеры:
  
 
  buildings:
 
  buildings:

Текущая версия на 14:11, 22 октября 2015

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

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

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

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

Определения индексов записывается в yaml-файле представления в секции 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: функциональный индекс с уникальными значениями