|
Программирование >> Разработка пользовательского интерфейса
Индексный CDX-файл, называемый структурным составным индексом, представляет собой наиболее общий и важный тип индексных файлов Visual FoxPro. Обратите внимание на следующие свойства структурного CDX-файла: Автоматически открывается при открытии таблицы. В одном индексном файле может содержаться несколько вариантов упорядочения записей или индексных ключей. Автоматически поддерживает операции добавления, изменения или удаления записей таблицы. Visual FoxPro предлагает дополнительно еще два вида индексных файлов: неструктурные СDХ-файлы и файлы с одним ключом - IDX-файлы. Однако СDХ-файлы, или структурные составные компактные индексы, представляют наиболее важный вид индексов. Остальные два вида индексов употребляются реже. Visual FoxPro поддерживает четыре типа индексов: первичные, кандидаты, уникальные и обычные. Тип индекса определяет, допустимы или нет повторяющиеся значения полей и записей. Первичный индекс (Primary) - это единственный индекс в таблице, который определяет уникальное ключевое значение для ее записей. Следовательно, он запрещает повторяющиеся значения в заданных полях или в выражении. Для таблицы может быть создан только один первичный индекс. При попытке задать первичный индекс для поля, в котором уже имеются повторяющиеся значения, Visual FoxPro выдает сообщение об ошибке. Индекс-кандидат (Candidate) - это индекс, который удовлетворяет требованиям к первичному индексу, но может быть не единственным в таблице. Он также запрещает повторяющиеся значения в заданных полях или выражении. Название кандидат относится к основному свойству индекса: поскольку он запрещает дублирующие значения, то этот индекс можно использовать в качестве первичного индекса для таблицы. При попытке задать индекс-кандидат для поля, в котором уже имеются повторяющиеся значения, Visual FoxPro выдает сообщение об ошибке. Первичные индексы и индексы-кандидаты создаются с помощью команд CREATE TABLE или ALTER TABLE. При определении постоянного отношения типа один ко многим или один к одному можно использовать со стороны один как первичный индекс, так и индекс-кандидат. Для создания первичного индекса или индекса-кандидата на вкладке Index Конструктора таблиц выберите тип индекса Primary или Candidate и создайте индекс (рис. 6.7) или используйте команду ALTER TABLE. \y Table Designer Jable Name: I model Database: I c:\project book\aLito store dbc Table Properties.. Table Index
Filter Cancel Insert Delete c:\project book\model.dbf Records: 37 Fields: 20 Length: Рис. 6.7. Например, каждая из следующих команд делает key model первичным ключом для таблицы Model: ALTER TABLE Model ADD PRIMARY KEY key model TAG key mode ALTER TABLE Model ALTER COLUMN key model I PRIMARY KEY Первичные индексы и индексы-кандидаты хранятся в структурном СDХ-файле данной таблицы, а также в базе данных, когда установлены свойства Primary или Candidate . Эти типы индексов невозможно хранить ни в неструктурных СDХ-файлах, ни в IDХ-файлах. Основной причиной этого является то, что файл, содержащий индексы таких типов, должен быть всегда открытым, если открыта соответствующая таблица. Если в индексном выражении, связанном с базой данных, используется определенная пользователем функция, то выражение обрабатывается таким же образом, как и выражения правил проверки и триггеров, содержащие определенные пользователем функции. В Visual FoxPro уникальный индекс (Unique) не запрещает повторяющиеся значения, однако уникальный индекс запоминает в индексном файле только первое появление каждого значения. Слово уникальный относится к значениям индексного файла, содержащего только уникальные значения ключей; поскольку каждое значение не запоминается более одного раза, все последующие появления какого-либо значения игнорируются. Если таблица проиндексирована уникальным индексом, то она может иметь повторяющиеся значения. Уникальный тип индексов поддерживается для обеспечения совместимости с предыдущими версиями. Обычный индекс (Regular) индексом -кандидатом. это индекс, который не является уникальным, первичным или Обычные индексы используются для упорядочения и поиска записей, но не для обеспечения уникальности данных в этих записях. Обычный индекс используется также при организации Таблица 6.3. Виды индексов Visual FoxPro Виды Описание Количество индекса ключей Структурный Имя файла, Выражения со CDX совпадает с многими именем ключами, таблицы; называемыми автоматически тегами открывается при открытии таблицы Неструктурный Должен Выражения со CDX открываться многими явно; имеет ключами, имя файла, называемыми отличное от тегами имени файла таблицы Ограничения Максимум 240 символов на вычисляемое выражение Максимум 240 символов на вычисляемое выражение Простые IDX Должен открываться явно; имя файла с расширением .IDX определяется пользователем Одноключевые Максимум 100 выражения символов на вычисляемое выражение Неструктурные СDХ-индексы применяются в тех случаях, когда требуется создать несколько индексных тегов для какой-либо специальной цели, однако нежелательна постоянная поддержка этих индексов. Например, если приложение содержит некоторый набор отчетов на основе анализа данных в полях, которые в остальное время не индексируются, то прикладная программа может создать неструктурный СDХ-индекс с необходимыми индексными тегами, запустить на выполнение эти отчеты, а затем удалить неструктурные СDХ-индексы. Для создания неструктурного индексного тега используйте команду INDEX с параметрами TAG и OF. Предложение OF в команде INDEX используется для указания того, что индекс-ный тег должен быть сохранен в файле, отличном от структурного СDХ-файла данной таблицы. Например, следующая команда создает тег с именем name firm для таблицы Firm и сохраняет его в неструктурном СDХ-файле с именем NSTRFIRM.CDX: USE Firm INDEX ON name firm TO TAG name firm OF NSTRFIRM Простой, или отдельный индексный файл, образуется на основе выражений с одним ключом и хранится в файле с расширением IDХ. В отличие от СDХ-индексов, которые строятся на основе выражений со многими ключами, простые IDХ-индексы сохраняют информацию только об одном ключевом выражении. Обычно простые индексы используются в качестве временных индексов, создаваемых или реорганизуемых непосредственно перед использованием. Для каждой таблицы может быть создано сколько угодно IDХ-файлов. Некоторые программисты предпочитают использовать этот тип индекса при создании многопользовательских приложений, так как он легче поддается восстановлению в случае аварийных сбоев. постоянных отношений типа один ко многим со стороны многих. После создания индексных ключей для таблицы Model по полям key model, key firm, key fuil oil, key tyre и key body можно выводить записи в различном порядке, просто выбирая нужный индексный ключ. Команда SET ORDER используется для указания того индексного ключа, по которому будет упорядочиваться таблица. Например, следующие команды открывают окно Browse для просмотра данных и выводят записи таблицы Model, упорядоченные по полю key model: SET ORDER ТО key model BROWSE В табл. 6.3 систематизируются свойства трех видов индексов.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |