Индексы
Список Type (Тип) используется для задания типа создаваемого индекса и содержит значения, описанные в табл. 4.10.
Таблица 4.10. Описание типов индекса.
Тип индекса | Описание |
---|---|
Regular (Обычный) | Создается индекс, в котором для каждой записи таблицы хранится значение индексного выражения. Если несколько записей имеют одинаковое значение индексного выражения, то каждое значение хранится отдельно и содержит ссылку на связанную с ней запись |
Unique (Уникальный) | Создается индекс, в котором хранятся только неповторяющиеся значения индексного выражения. Если две или более записей содержат одинаковое значение индексного выражения, то будет храниться только одно значение и ссылка на первую из записей с одинаковым значением индексного выражения. Таблица может иметь несколько уникальных индексов |
Candidate (Кандидат) | Создается уникальный индекс, который не содержит полей с пустыми значениями. Этот индекс обладает всеми качествами первичного ключа и не является им только по той причине, что таблица не может содержать более одного первичного ключа |
Primary (Первичный) | Создается уникальный индекс, который используется для связывания таблиц и определения условий целостности данных. Поля, входящие в первичный ключ, не должны допускать ввода пустых значений. В отличие от уникального индекса, таблица может иметь только один первичный ключ |
Значение индекса или индексного выражения вводится в поле Expression (Выражение). Вы можете ввести индексное выражение непосредственно в поле ввода или для формирования выражения использовать диалоговое окно конструктора выражений Expression Builder (Построитель выражения), представленное на рис. 4.18. Для открытия данного окна нажмите кнопку, расположенную справа от поля Expression (Выражение).
При использовании в индексном выражении полей разных типов вы должны проверять допустимость введенного выражения. Например, для таблицы customer вы можете создать индекс для упорядочения данных по стране проживания и по коду клиента:
cCountry + STR(icdCustomer)
В поле Filter (Фильтр) конструктора таблицы вы можете определить фильтр, используемый для ограничения формируемых индексных значений. В этом случае результат выражения должен иметь логический тип.
Рис. 4.18. Диалоговое окно Expression Builder
Замечание
Без индексов в Visual FoxPro не обойтись. Однако при их создании вы должны помнить, что если вы используете индекс, в состав которого входят поля большой ширины, индексный файл может оказаться очень больших размеров. Visual FoxPro не разрешает при создании индексов использовать Memo-поля и поля, содержащие графические изображения.